Как включить подсветку поиска с помощью vim script?

Если я делаю одно из следующих двух:

call search("searchString")

exec "/ searchString"

Из script, тогда vim выполняет поиск, но не выделяет результаты, хотя hlsearch. Выполнение одних и тех же запросов извне script выделяет результаты.

Ответ 1

Только сам выяснил ответ:

call search(l:searchString)
call matchadd('Search', l:searchString)

Ответ 2

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

вызов (l: searchString)

вызов matchadd ('Поиск', l: searchString)

Не работает для меня. (когда он запускается изнутри функции). Он высвечивает слова, которые я хотел найти, но n/N не будет циклически переключаться между ними. Также, когда я выполнил новый поиск, шаблон "l: serachStirng" все еще оставался выделенным. Этот ответ по этой ссылке работал намного лучше

Поиск и выделение Vim с помощью script

Который дал мне:

let @/= l: searchString

затем запустите

нормальный n

вне функции funciton (поэтому подсветка выполняется немедленно, без необходимости нажатия кнопки n)

Ответ 3

Чтобы включить, нажмите ESC type :set hls

Чтобы отключить, нажмите ESC type :set nohls

Ответ 4

feedkeys()

Функция

- это ключ (каламбур):

call feedkeys("/pattern\<CR>")

или очиститель:

" highlights – or doesn’t – according to 'hlsearch' option
function SearcH(pattern)
    let @/ = a:pattern
    call feedkeys("/\<CR>")
endfunction 

Ответ 6

Вам нужно поместить это в ваш .vimrc файл

" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
  syntax on
  set hlsearch
endif

Файл .vimrc обычно находится в вашем домашнем каталоге или вы можете найти его, используя "locate.vimrc"