Я пытаюсь установить hlsearch по умолчанию при вводе буфера в vim.

Выполнение :set hls вручную при входе в буфер выполняет ожидаемое мной действие. Однако, когда я добавляю autocmd BufEnter * set hls в мой .vimrc (и перезагружаю vim), ничего не происходит при открытии буфера. Добавление двоеточия перед set не меняет поведение.

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

Я удалил все остальное из моего .vimrc, так что это не вмешательство чего-то другого.

РЕДАКТИРОВАТЬ:

Я на Vim 7.4, «огромная» версия, приобретенная с homebrew.

Вот содержимое моего .vimrc, когда я тестировал call AutoHighlightToggle() . Он не выделяется при запуске, но после двух нажатий z/ работает правильно:

nnoremap z/ :if AutoHighlightToggle()<Bar>set hls<Bar>endif<CR>

function! AutoHighlightToggle()
   let @/ = ''
   if exists('#auto_highlight')
     au! auto_highlight
     augroup! auto_highlight
     setl updatetime=4000
     echo 'Highlight current word: off'
     return 0
  else
    augroup auto_highlight
    au!
    au CursorHold * let @/ = '\V\<'.escape(expand('<cword>'), '\').'\>'
    augroup end
    setl updatetime=500
    echo 'Highlight current word: ON'
  return 1
 endif
endfunction

call AutoHighlightToggle()

1 ответ1

1

Команда :se hls включает только опцию. Вы визуально не увидите, что ничего не изменится. Увидеть:

:help 'hlsearch'

(Кавычки предназначены для ввода.)

Если вы пытаетесь заставить Vim подсвечивать последнюю использованную строку поиска каждый раз, когда вводится новый буфер, эта команда вам не поможет.

К сожалению, Vim не имеет обратной команды :nohlsearch , которая говорит Vim прекратить выделять последнюю найденную строку, и кажется, что Vim отказывается позволить вам подключить ее в autocmd (то есть, отмечая позицию курсора, снова выполняя последний поиск, затем возвращаясь к отметке). Vim, похоже, предполагает, что autocmd никогда не должен запускать подсветку поиска.

Если вам нужна эта функция, вы должны отправить список разработчиков по электронной почте или напрямую сопровождающему Vim и попросить добавить команду :hlsearch .

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