Notepad++有一个非常好的功能,如果你选择一个单词,所有其他出现的该单词都会自动高亮显示,就像这样(只有我手动高亮显示的第一个autocmd):
我知道已经有类似的问题,但我希望有一种不需要手动交互的解决方案。
我知道已经有类似的问题,但我希望有一种不需要手动交互的解决方案。
如果你按下*
,Vim会搜索光标下单词的所有出现。
如果你已经打开了搜索高亮显示,它们将被突出显示。
您可以通过在.vimrc
中添加以下内容来打开搜索高亮显示:
set hlsearch
一个好处是你不再需要选择单词......只需按下*
键。
(你可以将其映射到其他键上,使其更加方便)
如果你不喜欢按下*
时光标移动的方式,你可以通过简单的映射来防止它:
nnoremap * *N
(将其放入您的 .vimrc 文件中)
按下*
键时,此功能将保持光标在其当前位置。
这样的做法可能是可行的。
(注:已保留HTML标签)set updatetime=10
autocmd! CursorHold,CursorHoldI * let @/='\<'.expand('<cword>').'\>'
这个功能使用CursorHold事件来设置光标下的单词到/寄存器中。为了让CursorHold事件更频繁地触发,updatetime被降低到10(从4000)。
问题:
:set hlsearch
。由于某些原因它不会自动开启。总的来说,我不建议使用这个功能,因为我认为搜索比这个功能更重要。
:match
代替对搜索寄存器的篡改,但方法是相同的。这可能是实现OP想要的最佳方式。 - Randy Morris<Leader>*
映射和:SearchAutoHighlighting
命令来启用此功能。它可以突出显示光标下的当前单词/WORD/整个单词/行/确切行。
:au CursorHold,CursorHoldI * :try | exe "call matchdelete(w:my_match)" | catch | finally | let w:my_match = matchadd('IncSearch', expand('<cword>')) | endtry
:hi
的输出中选择一个漂亮的替代IncSearch。注意:这可能会显著降低Vim的运行速度。