MacVim:重新映射命令组合键,如 <df>

Jo *_*iss 18 macvim

我可以<d-1>在 MacVim 中重新映射未使用的组合,如(Cmd+1),但有许多组合,如<d-f><d-o>或者<d-b>已经绑定到 MacVim 菜单项。如果我尝试重新映射 .vimrc 中的那些,则没有任何变化。

有什么方法可以在 MacVim 中重新映射这些组合,或者阻止 MacVim 将它们分配给菜单项,以便将它们正确传递到 Vim 核心?

Jo *_*iss 21

找到它:Command-T建议使用以下代码段:

if has("gui_macvim")
  macmenu &File.New\ Tab key=<nop>
  map <D-t> :CommandT<CR>
endif
Run Code Online (Sandbox Code Playgroud)

所以基本上你取消映射相应的菜单项,然后你可以自由地映射你试图映射的快捷方式。(我不确定&符号在做什么;它可以使用和不使用它。)

必须放在 ~/.gvimrc 中,而不是 ~/.vimrc 中!(显然 ~/.vimrc 被读取得太早,所以如果你把它们放在那里(un)映射将被破坏。)

  • 我在当前版本的 MacVim (7.3) 上试过这个,但没有用。我最终进入 $VIMRUNTIME/menu.vim,搜索 `&lt;D-` 并在周围的 if 语句末尾放置一个 `&amp;&amp; 0`。然后我将内容复制到我的 .gvimrc 并用 `&lt;nop&gt;` 替换了 `&lt;D-[^&gt;]*&gt;`。 (3认同)