我想添加一种方法来运行:对我来说最有意义的,所以我添加了以下内容
nnoremap / :noh<CR>/
nnoremap ? :noh<CR>?
到目前为止,它的工作方式正是我预期的(并且想要):当另一个搜索开始并输入/&lt; backspace&gt;时,hilights被清除。对我来说比&lt; leader&gt;&lt; space&gt;更有意义。或类似的。
我担心的是,这会以某种方式破坏其他有用的命令或插件。
任何人都知道我这样做是否安全?感谢。
答案 0 :(得分:2)
您定义的每个映射都可以破坏插件,如果它们写得不好,或者它们依赖于您重新定义的映射。
考虑使用map
代替noremap
或normal
而不是normal!
的插件:如果该映射的右侧或普通模式命令包含{ {1}},然后您的映射将被触发。
尽管如此,它还是打破了很多,这只是一个显示问题。
但是仍有一种情况你会破坏:尝试这个
/
CTRL-O iI am typing in insert mode
输入
通常,插入模式下的CTRL-O暂时切换到一个命令的正常模式。你刚刚打破了这一点,因为对/hello
的调用会消耗该命令。
你仍然可以这样做:
:noh
答案 1 :(得分:1)
我认为这很安全。但是,它会失去一些功能。
例如:
输入/hello
输入将突出显示所有hello
键入/world
以进行搜索,然后键入 ESC 以返回您所在的位置。但最初的亮点就丢失了。
我只是在.vimrc
:
nmap <BS> :noh<CR>
答案 2 :(得分:0)
普通模式映射<C-l>
通常会刷新屏幕。我修改了它以清除突出显示。现在很容易获得,来自反射。不破坏任何功能并清除高亮可以被视为屏幕刷新的一部分。
nnoremap <C-l> :nohl<CR><C-l>