如何在vim中映射Mac的命令键?

36

我想将我的NERDTREE切换映射到Cmd + space,但我不知道在.vimrc中代表Mac命令键的字符是什么。我搜索并发现可以使用'D'来表示cmd键,来源于这个链接,但它不起作用。 顺便说一下,我正在使用终端中的vim而不是MacVim。


2
https://dev59.com/UWkx5IYBdhLWcg3wAvun#9499124 - Mark Setchell
4个回答

33
iTerm2可以实现此功能- 在这里,我将command enter键映射为:wq。 输入图像描述

3
最后,cmd+/ 可以注释掉内容! - Paschalis
2
使用"vim"特殊字符发送文本也可以采用vim键映射样式语法,例如 "<D-S>"。前导反斜杠是必需的,请参阅 https://iterm2-discuss.narkive.com/2T4MenGn/send-text-with-vim-special-chars-sends-literal-chars。 - Parker Ault

33

确实,<D-映射到command键。您可以通过:help <D-查看。

然而,在您的vim+terminal中不起作用。它只在MacVim中起作用。请参见这里

您打算做的最好的方法是将组合映射为十六进制代码,并发送到终端。

但我不建议这样做。command对于mac os环境来说太重要了。例如,任何使用输入法的人都无法将其映射到command+space

请考虑在此处使用常规方法:<leader>


5
使用IdeaVim,您可以使用:<M-*>,例如<M-c>表示Cmd + c。

  • 代表什么?您能详细解释一下吗?谢谢。
- Serkan Sipahi
3
我认为它只是意味着“任何你想要的键”。 - André Willik Valenti
@SerkanSipahi 是的,* 代表你想要的任何键。"<M-c>" 表示 Cmd + c。 - Eduard Kolosovskyi

4
在iTerm 2中将CMD+p映射到vim的Meta P以调用:CtrlP命令的示例。 这样做的优点是Meta通常不用于任何其他操作,因此它不会与现有命令发生冲突。

iTerm key config for CMD+p

在 .vimrc 文件中,你需要添加以下内容:

map <M-p> :CtrlP<CR>

你忘了提到你正在使用Iterm2。也许要用粗体字提一下?非常好的答案。 - Harsh Verma
感谢您的建议,我已经更新了答案,并加入了那个事实。 - Guillermo Siliceo Trueba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接