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

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

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

Ответы [ 29 ]

4 голосов
/ 07 августа 2017

Я предполагаю, что исходный вопрос касался не отключения подсветки поиска, а просто очистки подсветки из последнего поиска. Решение поиска бессмысленной строки, о которой упоминал оригинальный постер, я использовал в течение некоторого времени для очистки выделения из предыдущего поиска, но это уродливо и громоздко.

Несколько предложений, которые я обнаружил, чтобы добавить nnoremap ... в ~ / .vimrc, приводят к тому, что при запуске vim переходит в режим замены, а это совсем не то, что мне нужно. Самое простое решение, которое я нашел, это добавить строку

nmap <esc><esc> :noh<return>

к моему ~ / .vimrc. Это соответствует принципу KISS и не мешает клавишам со стрелками, как это делает один . Двойной требуется в командном режиме (или тройной из режима вставки или замены) для очистки выделения из предыдущего поиска, но с точки зрения пользовательского интерфейса это делает операцию максимально простой.

4 голосов
/ 08 ноября 2017

Я использую следующее в моем ~/.vimrc

nnoremap <Leader><space> :noh<Enter>

Это позволяет легко и быстро очистить текущий выделенный поиск. Мой ключ лидера сопоставлен с \, поэтому это очень легко выполнить с моим правым мизинцем.

4 голосов
/ 28 февраля 2017

Я просто использую простой nohl ниже, и плагины не нужны.

:nohl

3 голосов
/ 05 ноября 2017

Установка vim-cool . Он был создан для решения этой конкретной проблемы. Выключение подсветки, как только вы перемещаете курсор. Будьте осторожны, для этого требуется последняя версия vim!

3 голосов
/ 29 апреля 2014

Я думаю, что смешивание ответов @ShaunBouckaert и 19 марта 2009 г. в 16:22 - хороший компромисс:

" Reset highlighted search
nnoremap <CR> :let @/=""<CR><CR>

Нажмите Введите , и выделенный текст больше не подсвечивается, а подсветка поиска все еще включена.

3 голосов
/ 19 августа 2016

Исходя из ответа @ baruch-even, вы можете удалить условие поиска при ESC двойном нажатии, находясь в режиме в обычном с помощью:

nnoremap <esc> :let @/ = ""<return><esc>
nnoremap <esc>^[ <esc>^[
3 голосов
/ 09 декабря 2015

вы можете использовать : noremap для включения / выключения результатов поиска, например

:noremap <F3> :set hls! hls?<CR>

1 голос
/ 18 февраля 2019

Я добавил это в мой vimrc файл.

command! H let @/=""

Для использования просто сделайте :H

1 голос
/ 07 августа 2018

Мне тоже не нравится. Я находил утомительным вводить :nohl все время ... поэтому я поместил следующее отображение в свой .vimrc

noremap <C-_> :nohl<cr>:<backspace>

Первый бит (:nohl<cr>) очищает подсветку; второй бит (:<backspace>) - это хитрость для очистки командной строки. Поиск все еще находится в фоновом режиме, поэтому, если вы просто нажмете n, он снова выделится и перенесет вас в следующее вхождение.

...