4

Я установил hlsearch на свой .vimrc.

Проблема в том, что когда я нахожу в своем документе то, что мне нужно, я хочу, чтобы он автоматически отключал hlsearch при входе в режим вставки для этой искомой строки.

Итак, если я пытаюсь найти другую строку, она начинается снова. Это поведение хорошо известно среди других редакторов.

Как мне это сделать?

2 ответа2

7

отключить подсветку при вводе insertmode через i:

noremap i :set nohlsearch<CR>i

чтобы включить его, выйдя из режима вставки (через ESC):

inoremap <ESC> <ESC>:set hlsearch<CR>

Вы можете применить эту идею ко всем видам клавиш, таких как a, o и т. д.

ИЛИ ЖЕ

autocmd InsertEnter * :set nohlsearch
autocmd InsertLeave * :set hlsearch

(благодарность за идею события «InsertEnter»)

3

Я нашел совершенно другой подход, но это именно то, что я искал.

:set hlsearch
autocmd InsertEnter * :let @/=""
autocmd InsertLeave * :let @/=""

Это устанавливает регистр "последнего поиска" в пустую строку, так что ничего не будет выделено. Более ранние поиски все еще можно запомнить с помощью клавиши после нажатия / или? и, необязательно, "начало" искомой строки.

Источник

Спасибо за ваш ответ Акира, но это решение действительно элегантно, на мой взгляд. И это работает, я проверял это!

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .