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