在emacs中,当您进行搜索时,缓冲区中将出现所有出现的高亮颜色,以及光标碰巧出现的另一种颜色.我想知道是否有人知道vim中的类似行为,vim插件,甚至是关于如何在vimscript中完成它的一些想法.
(注意,我已经知道了hl-IncSearch,它很接近,但不是我想要的)
Pet*_*ter 10
听起来你想突出显示缓冲区中的所有结果.你可以说
:set hls
Run Code Online (Sandbox Code Playgroud)
哪个会打开hlsearch.然后你可以说
:set nohls # turn off permanently
:noh # turn off until next time you search.
Run Code Online (Sandbox Code Playgroud)
您还可以使用*(向前)或#(向后)搜索/突出显示光标下的单词.
据我所知,没有内置的方法来做你想要的.
如果我尝试实现它自己...那么一种方式,你可以做到这一点是通过重写*,n并且p它的东西,如结合这个功能:
noremap n n:call HighlightNearCursor()<CR>
noremap p p:call HighlightNearCursor()<CR>
noremap * *:call HighlightNearCursor()<CR>
function HighlightNearCursor()
if !exists("s:highlightcursor")
match Todo /\k*\%#\k*/
let s:highlightcursor=1
else
match None
unlet s:highlightcursor
endif
endfunction
Run Code Online (Sandbox Code Playgroud)
我还没有测试过,所以这不是一个完整的解决方案,但我认为这至少是一种可行的方法.
编辑:您可能需要设置一些自定义高亮颜色.这个vimwiki页面提供了一些有关它的信息,虽然我记得在某个地方看到了一个更为简洁的例子.
再次编辑:也许更清晰的解决方案是将Mark.vim与第一种技术结合使用.然后它将归结为类似的东西:
noremap n \nn\m
noremap p \np\m
noremap * \n*\m
Run Code Online (Sandbox Code Playgroud)