好的,所以基本上Vim突出搜索的方式让我不高兴。基本上你做搜索,然后你必须在你的vimrc中键入/ asdf或者有这样的快捷方式:
nn <silent> <leader><space> :noh<CR>
这就是我所拥有的。但它仍然是太多的脑力劳动。基本上,当我进行搜索时,我希望突出显示启用(就像现在一样),但如果我做其他事情而不是循环搜索(使用n / N),那么我想突出显示关闭。这基本上是我的工作流程,所以我想知道我是否可以自动化它。此外,如果我搜索,执行除n / N之外的操作(应该关闭突出显示),然后再次按n / N,它应该重新启用。
有什么想法吗?
答案 0 :(得分:2)
这很难。一个想法是
:autocmd CursorHold * call feedkeys(":noh\<CR>")
(需要使用feedkeys()
,因为:nohlsearch
在函数和autocmds中无效。)无论何时暂停光标几秒钟,都会清除突出显示。您可以添加其他触发器,例如InsertEnter
或CursorHoldI
。
什么行不通的是CursorMoved
,因为搜索和n
/ N
也会跳转。您需要重载这些命令,在跳转后存储光标位置,并修改autocmd以仅在位置不同时清除突出显示。
我的所作所为:输入映射到:nohlsearch
;它很容易到达。
答案 1 :(得分:-1)
您可以使用以下方式打开或关闭它:
:set hls
或
:set nohls
我将 F7 映射到set hls!
:
noremap <F7> :set hls!<CR>