-1

У меня проблема с синхронизацией функции, которую я использую для поиска в Vim. Мне нужно, чтобы поиск выполнялся немедленно, а не после завершения функции.

Я использую функцию "feedkeys" (eg. feedkeys("/pathern\<cr>") для выполнения поиска.


Вот график!

          |                                            --> Need's "feedkeys("/pathern\<cr>")" result!|
          |                                            |                                             |
execution |call FUNC_A --> call FUNC_B --> return to FUNC_A                                          | execution
  begin   |                       |                                                                  |   end
          |                       --> Call "feedkeys("/pathern\<cr>")"!                              |    |
                                                                                                          --> "feedkeys("/pathern\<cr>")" search result!

1 ответ1

2
let @/ = "pattern"

это действительно правильный подход. Вы можете влиять на направление через специальную переменную v:searchforward . Перейти к следующему матчу через :normal! n .

Проблемы с подсветкой поиска, вероятно, связаны с выполнением внутри функции, см . :help function-search-undo . Вы по-прежнему можете использовать функцию для расчета шаблона и т.д., Но модификация @/ and :set hlsearch должна выполняться вне ее, т. Е. В команде отображения или пользовательской команде.

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