假设我在menu.vim中有这个功能:
function! s:Test()
let search = '\d\+'
let @/ = search
return "normal n"
endfunction
为什么不突出搜索匹配?
只有在我在命令行中执行:set hls
之后才会突出显示
当我按下键盘上的n
键时,它也会突出显示
如果我在函数中放置相同的行(:set hls
)则不起作用。
我的VIM启用了BTW突出显示
如果我使用命令行,它会突出显示。
答案 0 :(得分:1)
实际上可能会在:help functions-search-undo
下的手册中描述这种行为,但没有提及任何解决方法。
最后使用的搜索模式和重做命令"。" 不会被功能改变。这也意味着效果 当函数返回时,
:nohlsearch
被撤消。
:nohlsearch
上的文档也提到了这一点:
此命令在自动命令中不起作用,因为 执行自动命令时,将保存并恢复突出显示状态
autocmd-searchpat
。 调用用户函数时也是如此。