Я хотел бы отобразить один ключ, например. F4, так что нажатие F4 будет переключать видимость основных элементов поиска, и поэтому запуск нового поиска позволяет видеть видимость независимо от текущей видимости.
Что я пробовал:
- Отображение F4 до
:nohlsearch
временно отключает видимость подсветки, не отключая настройкуhlsearch
, но не переключает видимость назад. - Отображение F4 to
:set hlsearch!
делает включение/выключение, но я не хочу отключать настройкуhlsearch
, только настройку видимости. Еслиhlsearch
выключен, он автоматически не возвращается с новым поиском.
Кажется, что не существует противоположной формы :nohlsearch
, и сама команда вызывает проблемы из функции.
Я нашел похожие вопросы, но они не дают ответа.
Update:
Первый комментарий дает именно то, что я просил, воспроизведенный ниже:
let hlstate=0
nnoremap <F4> :if (hlstate == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=1-hlstate<cr>
(N.B. для тех, кто использует это --- кодирование карты на одну строку вместо использования функции необходимо, так как вы не можете произвести изменение выделения изнутри функции.)
Связанный с этим вопрос для немного разных функций: qaru.site/info/323940/...