是否存在动态启用/禁用Vim中突出显示的方法?
基本上Vim突出显示搜索的方式让我不高兴。基本上,您要进行搜索,然后必须键入/asdf或在vimrc中有如下快捷方式:是否存在动态启用/禁用Vim中突出显示的方法?,vim,macvim,Vim,Macvim,基本上Vim突出显示搜索的方式让我不高兴。基本上,您要进行搜索,然后必须键入/asdf或在vimrc中有如下快捷方式: nn <silent> <leader><space> :noh<CR> nn:noh 这就是我所拥有的。但这仍然是太多的脑力劳动。基本上,当我执行搜索时,我希望启用高亮显示(就像现在一样),但是如果我不在搜索中循环(使用n/n),那么我希望禁用高亮显示。这基本上是我的工作流程,所以我想知道我是否可以自动化它。此外,如果我搜索
nn <silent> <leader><space> :noh<CR>
nn:noh
这就是我所拥有的。但这仍然是太多的脑力劳动。基本上,当我执行搜索时,我希望启用高亮显示(就像现在一样),但是如果我不在搜索中循环(使用n/n),那么我希望禁用高亮显示。这基本上是我的工作流程,所以我想知道我是否可以自动化它。此外,如果我搜索,请执行n/n以外的操作(应关闭突出显示),然后再次按n/n,它将重新启用
有什么想法吗?那很难。一个想法是
:autocmd CursorHold * call feedkeys(":noh\<CR>")
:autocmd CursorHold*调用feedkeys(“:noh\”)
(需要使用feedkeys()
,因为:nohlsearch
在函数和自动MDS中无效。)这会在光标暂停几秒钟时清除突出显示。您可以添加其他触发器,如InsertEnter
或CursorHoldI
不起作用的是光标移动
,因为搜索和n
/n
也会跳转。您需要重载这些命令,在跳转后存储光标位置,并修改autocmd以仅在位置不同时清除高亮显示
我所做的:我已将输入映射到
:nohlsearch
;它既快又容易够到。您可以通过以下方式打开或关闭它:
:设置hls
或
:设置nohls
我将F7映射到设置hls代码>:
noremap <F7> :set hls!<CR>
noremap:设置hls!
折衷:使您的映射更加简单,例如,我发现:nnoremap:nohls
非常直观(一次击键!)。@glts:从下面相同的答案和一次否决票来看,这不是OP想要的。