Я пишу скрипт, в котором хочу программно управлять поиском и выделять его.Результаты функции search () не подсвечиваются (я думаю), поэтому использование этой функции мне бесполезно.
То, что я хочу сделать, это использовать команду «normal /» для поиска переменной,но это не кажется простым.Я могу написать команду:
execute 'normal /' . my_variable . '\<CR>'
(или другие варианты, как указано в подсказке vim здесь: http://vim.wikia.com/wiki/Using_normal_command_in_a_script_for_searching)
, но она ничего не делает.Я могу видеть правильный поисковый термин в командной строке после выполнения строки сценария, но фокус находится в документе, регистр поиска не был изменен, и курсор не выполнил никакого поиска.(Кажется, что не вводится, хотя ошибки не выдается - и да, я тоже пытался использовать литерал ^ M.)
Я могу по крайней мере контролировать регистр поискавыполнив это:
execute 'let @/ ="' . a:term .'"'
, а затем, очевидно, можно сделать следующее:
normal n
Но этот 'обычный n' ничего не сделает, если я его запущусценарий.Установка регистра поиска работает, если я вручную нажимаю «n» после того, как скрипт завершает поиск, происходит поиск (и появляется подсветка, так как hlsearch включен).Меня даже не волнует, установлен ли курсор, я просто хочу, чтобы шаблон регистра был подсвечен.Но различные комбинации 'set hlsearch' в скрипте также не работают.
Я знаю, что могу использовать 'match ()', но я хочу, чтобы он работал с обычной подсветкой поиска, и мне интересно, чтоЯ делаю не такЭто должно быть что-то простое, но я этого не вижу.Спасибо за любую помощь.