【问题标题】:Mapping :nohlsearch to escape key映射:nohlsearch 转义键
【发布时间】:2010-09-11 22:35:28
【问题描述】:

我喜欢使用hlsearch,但我讨厌在搜索后突出显示所有内容,为了解决这个问题,我可以简单地使用:nohlsearch或其缩写,但这仍然需要付出很多努力,所以我决定尝试这样做即按逃生。我想出的是:

nnoremap <ESC> :nohlsearch<CR>

这在我通常用于开发的 GVim 中完全符合我的要求,但在 vim 中不起作用。

如果我在 vim 中搜索某些内容,请按 Escape 取消突出显示并使用箭头键之一导航 vim 直接进入插入模式并在新行中插入一个字符。

因为我从来没有真正开始使用 hjkl 进行导航,这真的很烦人,我想知道如何让 vim 表现得像 gvim。

如果您需要更多信息,可以找到我的整个 vim 配置here

【问题讨论】:

  • Ctrl-L 已经用于重绘屏幕,所以我使用它:nnoremap &lt;silent&gt; &lt;C-l&gt; :nohl&lt;CR&gt;&lt;C-l&gt;
  • 我已将 \ 映射为 :nohlsearch^M(\ 作为 / 的相反外观;加上在 Enter 键上方易于记忆。)
  • @idbrii,很好的建议,谢谢。此外,它还可以防止撞击问题,例如5 然后按&lt;Esc&gt; 取消,得到E481: No range allowed
  • @Wildcard:要解决映射的特定问题,请使用 :&lt;C-u&gt; 而不是 : 像这样 nnoremap &lt;silent&gt; &lt;C-l&gt; :&lt;C-u&gt;nohl&lt;CR&gt;&lt;C-l&gt; 这将清除自动插入的范围(尝试正常输入 5:模式,您将看到导致该错误的范围)。

标签: vim


【解决方案1】:

您的问题是,当您按&lt;Up&gt; 时,终端会发送类似&lt;Esc&gt;OA 的内容(如果您在插入模式下输入&lt;C-v&gt;&lt;Up&gt;,您会看到它),它会重新映射到:nohlsearch&lt;CR&gt;OA。除了不映射单个&lt;Esc&gt;,我不知道任何解决方案,尝试映射到双&lt;Esc&gt;

【讨论】:

  • 感谢您的解释,我检查了终端发送的内容并使用它通过映射来解决问题。
【解决方案2】:

:noh 还是工作量太大?

编辑:我不了解你,但我个人认为 :noh 比按 Esc 键更容易,因为我可以按下所有按钮而不会将我的小指拉得太远(这就是为什么我认为从插入模式返回命令模式的 Esc 的默认映射有点不幸)。如果您真的经常使用 :nohlsearch,您可能应该将其重新映射到您可以从主区域访问的内容(即常规字母或数字,或者可能是 Ctrl 字母)。

无论如何,在我的 vim(在 gnome 终端上)中输入您给出的确切命令。您确定将规则放在 .vimrc 文件中,而不是 .gvimrc 中吗?重新启动vim后没有运气?试试:source /path/to/config/file 看看是否能正常工作。

【讨论】:

  • “或缩写”。 :noh 需要四个字母,我的首选解决方案只有一个。这对某些人来说可能听起来有点愚蠢,但我经常搜索对我来说很重要的东西。
  • 我已经转义了大写锁定,因为到达转义键所需的时间确实太长了。
  • @Daslch:同样,这也是我们选择 vim 的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-02
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
相关资源
最近更新 更多