这些重映射的任何潜在问题?

时间:2012-02-21 08:56:13

标签: vim

我想添加一种方法来运行:对我来说最有意义的,所以我添加了以下内容

nnoremap / :noh<CR>/
nnoremap ? :noh<CR>?

到目前为止,它的工作方式正是我预期的(并且想要):当另一个搜索开始并输入/&lt; backspace&gt;时,hilights被清除。对我来说比&lt; leader&gt;&lt; space&gt;更有意义。或类似的。

我担心的是,这会以某种方式破坏其他有用的命令或插件。

任何人都知道我这样做是否安全?感谢。

3 个答案:

答案 0 :(得分:2)

你可以在第三方插件中打破

您定义的每个映射都可以破坏插件,如果它们写得不好,或者它们依赖于您重新定义的映射。

考虑使用map代替noremapnormal而不是normal!的插件:如果该映射的右侧或普通模式命令包含{ {1}},然后您的映射将被触发。

尽管如此,它还是打破了很多,这只是一个显示问题。

正常使用vim

可以打破什么

但是仍有一种情况你会破坏:尝试这个

/ 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>