簡體   English   中英

如何打開vim腳本中的搜索突出顯示?

[英]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”模式仍然保持突出顯示。 這個鏈接上的答案效果更好

Vim從腳本中搜索並突出顯示控件

哪個給了我:

讓@ / = 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM