[英]How do I turn on search highlighting from a vim script?
如果我執行以下兩種方法之一:
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的情況下立即完成的)
要打開,請按ESC鍵:set hls
要關閉,請按ESC鍵:set nohls
在這里找到答案: http : //vim.1045645.n5.nabble.com/highlighting-search-results-from-within-a-function-tt5709191.html#a5709193
```
一個解決方案是
function! XXXX()
execute '/this'
return @/
endfunction
並使用以下代替“:call XXXX()”。
:let @/ = XXXX()
```
我相信這可以從一個函數內部工作(只是啟用突出顯示,僅此而已):
call feedkeys(":\\<Cu>set hlsearch \\<enter>")
您需要將它放在.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”找到它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.