【问题标题】:Stop inserting hotkey combinations after meta/leader key在元/前导键后停止插入热键组合
【发布时间】:2013-05-23 23:01:45
【问题描述】:

在 MacVim 上,我遇到了一件相当烦人的事情,我还没有任何解决方案。

在插入模式下,如果我输入 ,(我的前导键),然后按 CMD-S 以尝试保存,它最终会在逗号后插入 <t_<fa>X>

我不知道该文本的原因或内容,但有什么方法可以阻止它被插入?

【问题讨论】:

  • 另外我想补充一点,我不想从逗号更改我的领导者密钥。我已经习惯了,并且有很多绑定。
  • 您也可以输入命令:map <leader><d-s> 来查看该组合键也绑定了什么。
  • 在插入模式下,如果你输入,,它应该插入一个逗号。我错过了什么吗?
  • @DavidBrown 问题不在于 CMD-S 尤其绑定了某些东西。点击 CMD 和 any 键会在我点击逗号后插入一些奇怪的符号。这与 :map 之类的相同——它没有任何映射,但是当我点击该组合时,vim 会在我的文件中插入一个文字 '' 文本。
  • @JonathanDumaine 仅供参考:code.google.com/p/macvim/issues/detail?id=388

标签: vim macvim


【解决方案1】:

我找到了你的 gvimrc here on github

在第一部分你有一堆映射。最后几行如下所示。

if has("gui_macvim")
  ...

  " Adjust viewports to the same size
  map <Leader>= <C-w>=
  imap <Leader>= <Esc> <C-w>=
endif

问题是这个映射

imap <Leader>= <Esc> <C-w>=

Macvim 获取您的&lt;leader&gt; 密钥并等待查看是否是下一个=。它不会执行映射,并且由于映射不正确,它会将字符插入缓冲区。似乎 MacVim 将&lt;d-s&gt; 打印为&lt;t_&lt;fa&gt;X&gt;。所以&lt;t_&lt;fa&gt;X&gt; 被放入缓冲区中,&lt;CMD-S&gt; 被按下。

要阻止这种情况,您不应该在插入模式下使用您的前导键进行任何映射,因为在此之后不久,MacVim 将等待另一个字符来确定您是在键入映射还是尝试插入某些内容。

编辑:Kent 还找到了一个指向 MacVim 问题跟踪器 issue 388 的链接,该链接描述了此问题。

【讨论】:

  • 我想说的解决办法是正常使用Vim:尽量远离插入模式,:w远离普通模式。坚持使用 Vim 就好像它只是另一个 Sublime 或 TextMate 将导致 OP 无处可去。
  • 互联网侦探来救援!许多年前,我开始使用一些样板的 vimrc 设置。瞧,它们一直是我沮丧的根源。感谢您的足智多谋,删除这些映射阻止了该序列的显示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2019-12-05
  • 1970-01-01
  • 2011-06-12
相关资源
最近更新 更多