2

好的,所以基本上 Vim 突出显示搜索的方式让我不高兴。基本上你做一个搜索,然后你必须输入 /asdf 或在你的 vimrc 中有这样的快捷方式:

nn <silent> <leader><space> :noh<CR>

这就是我所拥有的。但这仍然是太多的脑力劳动。基本上,当我进行搜索时,我希望启用高亮显示(就像现在一样),但如果我做的不是循环搜索(使用 n/N),那么我希望高亮显示关闭。这基本上是我的工作流程,所以我想知道我是否可以自动化它。此外,如果我搜索,请执行 n/N 以外的操作(应该关闭突出显示),然后再次按 n/N,它应该重新启用。

有任何想法吗?

4

2 回答 2

3

这很难。一个想法是

:autocmd CursorHold * call feedkeys(":noh\<CR>")

(需要使用feedkeys(),因为:nohlsearch在函数和自动命令中无效。)每当您将光标暂停几秒钟时,这都会清除突出显示。您可以添加其他触发器,例如InsertEnterCursorHoldI

不起作用的是CursorMoved,因为搜索和n/N跳转也是如此。您需要重载这些命令,在跳转后存储光标位置,并修改 autocmd 以仅在位置不同时清除突出显示。

我做什么:我已经Enter映射到:nohlsearch;它既快速又容易到达。

于 2013-02-01T20:25:28.037 回答
0

您可以使用以下方法打开或关闭它:

:set hls

或者

:set nohls

我已F7映射到set hls!

noremap <F7>    :set hls!<CR>
于 2013-02-01T20:31:52.870 回答