Вопрос: Vim очистить последний поиск


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

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


1575


источник


Ответы:


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

:noh

Или выключите выделение полностью:

set nohlsearch

Или, чтобы переключить его:

set hlsearch!

nnoremap <F3> :set hlsearch!<CR>

1262



Из Документация VIM

Чтобы очистить последний использованный шаблон поиска:

:let @/ = ""

Это не приведет к установке шаблона в пустую строку, поскольку это будет соответствовать везде. Шаблон действительно очищается, например, при запуске Vim.


633



Ты можешь сделать

:noh

или :nohlsearchвременно отключить подсветку поиска до следующего поиска.


554



Я нашел этот ответ несколько лет назад на vim.org:

Добавьте в свой .vimrc следующее:

"This unsets the "last search pattern" register by hitting return
nnoremap <CR> :noh<CR><CR>

Таким образом, после вашего поиска, просто нажмите снова вернуться в командном режиме, и подсветка исчезнет.


267



Из http://twitter.com/jonbho/status/2194406821

" Clear highlighting on escape in normal mode
nnoremap <esc> :noh<return><esc>
nnoremap <esc>^[ <esc>^[

Вторая строка необходима для отображение в escape-ключ так как Vim внутренне использует escape для представления специальных клавиш.


130



Найдите маловероятную последовательность символов (смять клавиши в домашней строке):

/;alskdjf;

Это работает в vim и меньше, и легче запомнить / тип, чем @ логически более чистое решение ShaunBouckaert «очистить последний использованный шаблон поиска»:

:let @/ = ""

Потенциальным недостатком является то, что он добавляет нежелательную информацию в вашу историю поиска.


35



Обновлен в моем файле .vimrc.local, быстрый и грязный, но очень функциональный:

" Clear last search highlighting
map <Space> :noh<cr>

28



nnoremap <cr> :noh<CR><CR>:<backspace>

That way I get rid of :noh shown in the commandline, when hitting enter after the search.

: is like starting entering a new command, Backspace clears it and puts the focus back into the editor window.


27



I generally map :noh to the backslash key. To reenable the highlighting, just hit n, and it will highlight again.


25



The answers proposing :noh or :nohlsearch (e.g., Matt McMinn’s) are correct for temporarily disabling search highlighting – as asked in the original question.

I thought I'd contribute a mapping that I find useful in Normal mode:

nnoremap <C-L> :nohlsearch<CR><C-L>

By default, CtrlL in Vim clears and redraws the screen. A number of command line programs (mostly those using the GNU Readline library, such as Bash) use the same key combination to clear the screen. This feature is useful in the situation where a process running in the background prints to the terminal, over-writing parts of the foreground process.

This Normal mode mapping also clears the highlighting of most recent search term before redrawing the screen. I find the two features complement each other and it’s convenient to use one CtrlL for both actions together rather than create a separate mapping for disabling search highlighting.

NB: noremap is used rather than map as otherwise, the mapping would be recursive.

Tip: I usually remap Caps Lock to Ctrl to make it easier to type such key combinations; the details for doing this depend on your choice of OS / windowing system (and are off-topic for this answer). Both the following tips include information on mapping Caps Lock to Ctrl as well as Esc:


23



Disable search highlighting permanently

Matches won't be highlighted whenever you do a search using /

:set nohlsearch

Clear highlight until next search

:noh

or :nohlsearch (clears until n or N is pressed)


Clear highlight on pressing ESC

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

Clear highlight on pressing another key or custom map

  • Clear highlights on pressing \ (backslash)

    nnoremap \ :noh<return>
    
  • Clear highlights on hitting ESC twice

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

21