Избавьтесь от основного момента Vim после поиска текста - PullRequest
73 голосов
/ 07 декабря 2010

В VIM после нахождения текста с помощью команды "/" этот текст остается выделенным.

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

Спасибо.

Ответы [ 8 ]

119 голосов
/ 07 декабря 2010

Введите это:

:noh
30 голосов
/ 07 декабря 2010

Вы можете переключить его с помощью

:set hls!

Конечно, быстрая и грязная альтернатива - это другой поиск тарабарщины:

/asdsad

Я обычно привязываю ключ к :set hls!чтобы упростить эту задачу и использовать бессмысленный подход, когда я работаю в vim на какой-то машине, на которой не установлен мой профиль.

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

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

:set nohlsearch

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

:nohlsearch

или :noh для краткости.Это очищает подсветку до тех пор, пока не будет выполнен новый поиск или не будет нажата n или N


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

  • Снятие бликов при нажатии клавиши ESC

    nnoremap <esc> :noh<return><esc>
    
  • Снятие бликов при нажатии \ (обратная косая черта) дважды

    nnoremap \\ :noh<return>
    
12 голосов
/ 08 декабря 2010

Я ленивый и набираю что-то вроде /asdf, затем хлопаю по клавише RETURN.

11 голосов
/ 07 декабря 2010

У меня есть это в моем .vimrc:

map <leader>h :set hlsearch!<cr>

Так что, когда я набираю:

\h

Он включает / выключает подсветку.

9 голосов
/ 07 декабря 2010

Если вы не хотите удалять выделение, одним из лучших способов является очистка регистра поиска, если, конечно, вам не понадобятся элементы поиска позже. Это предотвратит повторное включение подсветки, а (Edit: noh не отключит подсветку навсегда) предотвратит случайное прыгание. Вот как у меня есть мои настройки:

nmap <silent> ,/ :let@/=""<CR>

Для этого нужно сопоставить последовательность клавиш ,/ в обычном режиме, чтобы очистить регистр поиска @/, установив для него пустую строку. Это просто альтернатива тому, что уже было сказано.

1 голос
/ 19 января 2017

:noh избавится от выделенного текста.

0 голосов
/ 09 мая 2015

В дополнение к «очистке регистра поиска», вы даже можете сбросить регистр поиска к его предыдущему значению:

command! -nargs=* -range S
\ let atslash=@/|exe ':'.<line1>.','.<line2>.'s'.<q-args>|let @/=atslash

Тем не менее:
- это не сбрасывает предыдущий статус :hls. Я не верю, что это вообще возможно.
- это определяет новую команду, :S, чтобы использовать вместо :s. Вы можете использовать cabbrev для сопоставления одного с другим, но это прекратится, когда вы добавите диапазон в команду замены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...