Vim clear последняя поисковая подсветка - PullRequest
1756 голосов
/ 18 марта 2009

После выполнения поиска в Vim я выделяю все вхождения. Как я могу отключить это? Сейчас я делаю еще один поиск чего-то бессмысленного, что не может быть найдено.

Есть ли способ просто временно отключить выделение, а затем снова включить его при необходимости?

Ответы [ 29 ]

21 голосов
/ 07 ноября 2015

Отключить подсветку поиска навсегда

Совпадения не будут выделяться, когда вы выполняете поиск, используя /

:set nohlsearch

Очистить выделение до следующего поиска

:noh

или :nohlsearch (очищается до нажатия n или N )


Очистить выделение при нажатии ESC

nnoremap <esc> :noh<return><esc>

Очистить подсветку при нажатии другой клавиши или пользовательской карты

  • Очистка бликов при нажатии \ (обратная косая черта)

    nnoremap \ :noh<return>
    
  • Четкие блики при попадании ESC дважды

    nnoremap <esc><esc> :noh<return>
    
14 голосов
/ 30 ноября 2014

Это то, что я использую (извлечено из множества разных вопросов / ответов):

nnoremap <silent> <Esc><Esc> :let @/=""<CR>

С помощью «double» Esc вы удаляете выделение, но как только вы начинаете поиск снова, выделение снова появляется.


Другая альтернатива:

nnoremap <silent> <Esc><Esc> :noh<CR> :call clearmatches()<CR>

Согласно документации vim:

clearmatches ()

    Clears all matches previously defined by |matchadd()| and the

    |:match| commands.
9 голосов
/ 09 сентября 2016

Если у вас установлен плагин incsearch.vim , то есть настройка для автоматической очистки выделения после поиска:

let g:incsearch#auto_nohlsearch = 1

enter image description here

9 голосов
/ 01 января 2016

Чтобы отключить подсветку до следующего поиска

:noh

Visual Illustration

8 голосов
/ 20 ноября 2012

Янус для VIM и GVIM имеет множество запеченных вещей для таких новичков, как я, включая

<leader>hs - toggles highlight search

что именно то, что вам нужно. Просто наберите \hs в обычном режиме. (Ключ лидера по умолчанию отображается на \.)

НТН.

7 голосов
/ 14 марта 2016

Для этого есть два плагина 'must have':

  1. разумный - Ctrl-l для nohlsearch и перерисовки экрана.
  2. unimpared - [oh, ]oh и coh для управления hlsearch.
6 голосов
/ 24 апреля 2014

Это очистит подсветку поиска после updatetime миллисекунд бездействия.

updatetime по умолчанию 4000 мс или 4 с, но я установил для 10 с. Важно отметить, что updatetime делает больше, чем просто это, поэтому прочитайте документы, прежде чем изменить его.

function! SearchHlClear()
    let @/ = ''
endfunction
augroup searchhighlight
    autocmd!
    autocmd CursorHold,CursorHoldI * call SearchHlClear()
augroup END
6 голосов
/ 30 сентября 2015

Если вы хотите иметь возможность включить / отключить выделение быстро , вы можете сопоставить ключ с

" Press F4 to toggle highlighting on/off, and show current value.
:noremap <F4> :set hlsearch! hlsearch?<CR>

Просто поместите приведенный выше фрагмент в ваш файл .vimrc.

Для меня это наиболее удобный способ показать и скрыть подсветку поиска нажатием одной кнопки

Для получения дополнительной информации см. Документацию http://vim.wikia.com/wiki/Highlight_all_search_pattern_matches

5 голосов
/ 04 апреля 2015

Еще одно решение, объединяющее 2 главных ответа:

"To clear the last used search pattern:
nnoremap <F3> :let @/ = ""<CR>
5 голосов
/ 26 декабря 2017

Мне нравится сопоставлять esc с командой :noh следующим образом:

map <esc> :noh<cr>

Недавно я написал целую статью о поиске в Vim : как искать в vanilla Vim и лучший плагин для улучшения функций поиска.

...