如果我执行以下两种方法之一:
call search("searchString")
exec "/ searchString"
从脚本开始,然后vim进行搜索但不突出显示结果,即使是hlsearch。从脚本外部执行相同的搜索会突出显示结果。
如果我执行以下两种方法之一:
call search("searchString")
exec "/ searchString"
从脚本开始,然后vim进行搜索但不突出显示结果,即使是hlsearch。从脚本外部执行相同的搜索会突出显示结果。
刚刚找到了答案:
call search(l:searchString)
call matchadd('Search', l:searchString)
该
feedkeys()
功能是关键(双关语):
call feedkeys("/pattern\<CR>")
或清洁:
" highlights – or doesn’t – according to 'hlsearch' option
function SearcH(pattern)
let @/ = a:pattern
call feedkeys("/\<CR>")
endfunction
我知道这已经很晚了。然而,当我搜索这个问题的答案时,这个页面出现了。所以我觉得有必要帮忙修复它。
呼叫搜索(l:searchString)
call matchadd('Search',l:searchString)
不适合我。 (从函数内部运行时)我想要搜索的单词确实高亮,但是n / N不会在它们之间循环。此外,当我执行新搜索时,“l:serachStirng”模式仍然保持突出显示。这个链接上的答案效果更好
哪个给了我:
让@ / = l:searchString
然后运行
正常的
在功能之外(所以突出显示是在没有用户需要按n的情况下立即完成的)
要开启,请按 退出 类型 :set hls
要关闭,请按 退出 类型 :set nohls
```
一种解决方案是
function! XXXX()
execute '/this'
return @/
endfunction
并使用以下代替“:call XXXX()”。
:let @/ = XXXX()
```
您需要将它放在.vimrc文件中
" Switch syntax highlighting on, when the terminal has colors
" Also switch on highlighting the last used search pattern.
if &t_Co > 2 || has("gui_running")
syntax on
set hlsearch
endif
.vimrc文件通常位于您的主目录中,或者您可以使用“locate .vimrc”找到它。