Подтвердить что ты не робот

Избавьтесь от выделения Vim после поиска текста

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

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

Спасибо.

4b9b3361

Ответ 1

Введите это:

:noh

Ответ 2

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

:set hls!

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

/asdsad

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

Ответ 3

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

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

Итак, когда я печатаю:

\h

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

Ответ 4

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

Ответ 5

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

nmap <silent> ,/ :[email protected]/=""<CR>

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

Ответ 6

Полностью отключить поисковые запросы

:set nohlsearch

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

:nohlsearch

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


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

  • Очистить блики при нажатии клавиши ESC

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

    nnoremap \\ :noh<return>
    

Ответ 7

В дополнение к "очистить регистр поиска" вы можете даже reset регистра поиска до его предыдущего значения:

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

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

Ответ 8

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