Notepad ++具有這個功能非常簡潔的功能,如果選擇一個單詞,則會自動突出顯示該單詞的每個其他字符,如下所示(僅第一個autocmd由我突出顯示):Vim:自動突出顯示所選字的所有出現
據我所知,類似的事情已是asked,但我希望有不需要人工交互的解決方案。
Notepad ++具有這個功能非常簡潔的功能,如果選擇一個單詞,則會自動突出顯示該單詞的每個其他字符,如下所示(僅第一個autocmd由我突出顯示):Vim:自動突出顯示所選字的所有出現
據我所知,類似的事情已是asked,但我希望有不需要人工交互的解決方案。
我的SearchHighlighting plugin有一個<Leader>*
映射和:SearchAutoHighlighting
命令來啓用此功能。它可以突出顯示光標下的當前單詞/ WORD /整個單詞/線條/精確線條。
像這樣的東西可以工作。
set updatetime=10
autocmd! CursorHold,CursorHoldI * let @/='\<'.expand('<cword>').'\>'
這使用CursorHold事件來設置/
光標下注冊的單詞。爲了使CursorHold事件更頻繁地啓動,updatetime被降低到10(從4000)。
問題:
:set hlsearch
。出於某種原因,它本身並不會啓動。/
寄存器。總的來說我不會使用它,因爲我覺得搜索比這個功能更重要。
你可以使用':match'而不是在搜索寄存器上跺腳,但方法是一樣的。這可能是完成OP想要的最好方法。 –
如果您按*
Vim將搜索光標下所有出現的單詞。
如果您打開搜索高亮顯示,它們將被高亮顯示。
你可以把這個在您的.vimrc
打開搜索高亮:
set hlsearch
一個不錯的加是你沒有選擇的話了......你剛纔打*
關鍵。
(你可以把它映射到另一個鍵,使之更方便)
如果你不喜歡的方式,光標移動,當你按下*
可以防止它用一個簡單的製圖:
nnoremap * *N
(把它放到你的.vimrc)
當您按*
時,這會將光標保持在當前位置。
我會做這樣的:
:au CursorHold,CursorHoldI * :try | exe "call matchdelete(w:my_match)" | catch | finally | let w:my_match = matchadd('IncSearch', expand('<cword>')) | endtry
如果你不喜歡的高亮顯示,選擇從:hi
輸出一個不錯的一個,並用它來代替IncSearch。注意:這可能會顯着降低Vim的速度。
你是什麼意思的手動交互?你想讓vim總是突出匹配嗎? – pkacprzak
我同意它不清楚OP想要什麼。你用鼠標選擇單詞嗎? – jahroy
抱歉不清楚。通過選擇我的意思是突出顯示一個單詞。如果光標在單詞的開頭,shift + ctrl(在mac上的alt)+右箭頭。如果我用第一個單詞做這個事情,那麼所有其他的事件立即被突出顯示,並且以不同的顏色顯示。 – Nicolas