我可以在终端 Vim 中使用 `<cmd>` 键吗?

jor*_*ver 25 keyboard-shortcuts vim iterm2 macos

继我最近的另一个问题: 如何映射 <cmd>-<shift>-f 以在 Vim 中运行 Ack 插件?

是否可以<cmd>在 Vim 中使用密钥?

如果 Vim 无法识别该键,是否可以将 Vim 外部的键(不知何故?)重新映射到其他东西并在 Vim 内映射键?

我在带有 Vim 7.3 的 Lion 上使用 iTerm 2。

谢谢!

rom*_*inl 15

<D-> 仅适用于 MacVim。

一个快速的谷歌将返回一堆黑客和第三方解决方案。我知道的所有解决方案要么在系统范围内工作,要么是特定Cmd于应用程序的:如果您仅在 iTerm2 中重新映射,您将如何打开一个新窗口或一个新选项卡?用……用…………鼠标?

我想不出一个很好的理由将Cmd密钥重新映射到 Mac 上的任何东西。那将是疯狂的。

Vim 不是 TextMate 或您以前使用过的任何其他编辑器。没有办法无缝地转移您所有的旧习惯,完全没有。

与其浪费时间试图让 Vim您的终端成为它不是也不能成为的东西,您应该学习如何明智地使用和定制 Vim。你所有的Cmd+ Shift+ Ctrl+Alt组合不会带你到任何地方。特别是在Alt经常出现问题和Cmd无法使用的终端中。

考虑使用<leader>( :help leader):

  • 它在每个平台上都是可移植的
  • 它不太容易与您的操作系统或终端模拟器发生冲突
  • 它开启了很多容易记住的可能性


小智 7

我发现 iterm2 在键盘设置中有一个选项可以做这种事情。对于下面的前例,我将命令输入映射为 :wq

在此处输入图片说明在此处输入图片说明


小智 6

对于简单的命令,可以通过向终端发送适当的十六进制代码来解决。例如,我想通过按 保存在 vim 中cmd-s。我映射cmd-s在iterm2发送的十六进制代码0x13这是代码ctrl-s,然后我映射ctrl-s:wq在vim。


dor*_*erg 6

2016 年的解决方案是使用Karabiner开源程序,它允许您以非常细的粒度重新映射修饰符和其他键,例如

  • 仅重新映射左键 ? CmdOption键。
  • 仅针对特定应用程序重新映射密钥,例如仅在终端、Emacs 或虚拟机内。

例如,这里是如何重新映射左键? CmdCtrl 仅在终端内充当(并使右键不受影响,以便您仍然可以使用 eg? Cmd + Tab在应用程序之间切换):

karabiner 截图