Что я хотел бы, так это отобразить одну клавишу, например, F4, чтобы нажатие F4 переключало видимость основных элементов поиска, и, чтобы начало нового поиска включало видимость независимо от текущей видимости.
Что я пробовал:
:nohlsearch
временно отключает видимость подсветки без отключения настройки hlsearch
, но не переключает видимость обратно. :set hlsearch!
переключает вкл/выкл, но я не хочу отключать настройку hlsearch
, только настройку видимости. Если hlsearch
выключен, то он не возвращается автоматически при новом поиске. Похоже, не существует противоположной формы :nohlsearch
, а сама команда имеет проблемы с вызовом из функции.
Я нашел похожие вопросы, но они не дают ответа.
Обновление:
Первый комментарий дает именно то, о чем я спрашивал, воспроизведено ниже:
let hlstate=0
nnoremap :if (hlstate == 0) \| nohlsearch \| else \| set hlsearch \| endif \| let hlstate=1-hlstate
(N.B. для тех, кто использует это --- запихивание карты в одну строку вместо использования функции необходимо, поскольку вы не можете выполнить изменение подсветки внутри функции.)
Смежный вопрос для немного другой функциональности: https://stackoverflow.com/a/16750393/1176650