我在 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
let @/ = "pattern"
确实是正确的方法。您可以通过特殊变量影响方向v:searchforward
。通过 转到下一场比赛:normal! n
。
搜索突出显示的问题可能与函数内的执行有关,请参阅:help function-search-undo
。您仍然可以使用函数来计算模式等,但@/
和的修改:set hlsearch
必须在其外部进行,即在映射或自定义命令中。