如果我做以下兩種的:如何打開vim腳本中的搜索高亮顯示?
call search("searchString")
exec "/ searchString"
從腳本,然後VIM進行搜索,但沒有突出的成績,即使hlsearch。從腳本外部進行相同的搜索會突出顯示結果。
如果我做以下兩種的:如何打開vim腳本中的搜索高亮顯示?
call search("searchString")
exec "/ searchString"
從腳本,然後VIM進行搜索,但沒有突出的成績,即使hlsearch。從腳本外部進行相同的搜索會突出顯示結果。
剛剛發現出自我的答案:
call search(l:searchString)
call matchadd('Search', l:searchString)
這是否允許在下一個/上一個匹配中正常使用n/N? – alesplin 2010-02-12 18:02:56
這真的有幫助! – Life 2016-06-27 20:39:11
@alesplin:[This](https://stackoverflow.com/questions/1803539/how-do-i-turn-on-search-highlighting-from-a-vim-script/47746577#14087567)回答下面說不是。我發佈了一個[解決方案](https://stackoverflow.com/questions/1803539/how-do-i-turn-on-search-highlighting-from-a-vim-script/47746577#47746577)。 – 2017-12-11 05:02:38
你需要把你的.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文件通常位於你的主目錄,或者你可以找到它使用「定位的.vimrc」
這是關於vim中的腳本,而不是突出顯示搜索和語法高亮。 – crelbor 2009-11-26 13:10:44
我知道這是晚了。但是當我搜索這個問題的答案時,這個頁面出現了。所以我覺得不得不幫助解決它。
調用搜索(L:搜索字符串)
呼叫matchadd( '搜索',L:搜索字符串)
並沒有爲我工作。 (當從一個函數內部運行時)它對我想要搜索的詞做了很大的努力,但是n/N不會在它們之間循環。另外,當我執行新搜索時,「l:serachStirng」模式仍然保持突出顯示。此鏈接這個答案的工作好得多
Vim search and highlighting control from a script
這給了我:
讓@/= 1:搜索字符串
然後運行
法線n
的功能可按外面(這樣的突出顯示,而不需要用戶輸入n立即進行)
要開啓,按ESC類型:set hls
要關閉,按ESC類型:set nohls
-1:從腳本中不能按需使用。 – 2018-01-23 19:43:04
`` `
一個解決辦法是
function! XXXX()
execute '/this'
return @/
endfunction
,並使用以下代替 「:致電XXXX()」。
:let @/ = XXXX()
```
的
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) – crelbor 2009-11-26 13:11:25
請在這裏添加您的答案作爲真實答案。當你真的在尋找答案時,很難發現評論。 – innaM 2009-11-26 13:13:05