禁用MacVim的键盘快捷键

10
有没有办法在MacVim中禁用键盘快捷键?我的意思是像Cmd + s这样的快捷键,例如,我想说服自己使用像:w这样的命令来保存文件,但如果我可以使用Cmd + s来保存文件,我就无法达成目标,你明白我的意思吗?
当然,我仍然想使用GUI,所以有没有办法禁用这些快捷键,而不停止使用MacVim GUI?
谢谢您的帮助。顺便说一句,我已经通过Google搜索并未找到答案。
编辑:根据@ChrisJohnsen的建议,我已经尝试过以下方法,但没有成功:
if has('gui_running')
    macmenu File.Save key=<nop>
    macmenu File.Save\ As\.\.\. key=<nop>
endif

编辑2:
我把我遇到的错误转移到了这个问题:当我尝试在命令行中运行vim时,出现Python错误

2个回答

16

没有简单的方法可以禁用所有预定义的 Mac 风格键盘快捷键,但您肯定可以更改/禁用其中任何一个。重要的命令是 :macmenu(请参阅 :help :macmenu); 它允许您设置任何 Vim 菜单项的 Mac 特定属性(大多数是 Mac 特定的键盘快捷键和 Mac 特定的操作(例如打开/保存对话框、窗口操作等))。

macmenu File.Save key=<nop>
macmenu File.Save\ All key=<nop>
macmenu File.Save\ As\.\.\. key=<nop>

问题在于:macmenu命令仅在您的.gvimrc文件中有效。

如果您执行:e $VIMRUNTIME/menu.vim并搜索macm,您将找到预定义快捷键和操作的列表。将所需行复制到您的.gvimrc中,并将key=<whatever>替换为key=<nop>。如果您需要您的.gvimrc在多个平台上工作,您也可以将它们包含在if has("gui_macvim") / endif中。


我尝试过了,但出于某些原因它不起作用。我在原帖中发布了我尝试过的内容。谢谢! - greduan
你确定将条目放在了.gvimrc(g代表GUI)中,而不是.vimrc中吗?它们只会在.gvimrc中起作用(对我来说确实有效)。 - Chris Johnsen
我没有把它们放在我的.gvimrc文件中,而是放在了我的.vimrc文件中。但是,我确实将它们包含在if has('gui_running')中,并且在该语句内部使用了if has('gui_macvim') - greduan
1
它们必须.gvimrc中;使用has('gui_running')不是一个有效的替代方法。问题在于.vimrc在分配默认值的menu.vim之前运行(任何在.vimrc中进行的“覆盖”都将被menu.vim撤销);.gvimrcmenu.vim之后运行(在那里进行的任何覆盖都不会被撤销;.gvimrc基本上是最后一个要处理的初始化文件)。 - Chris Johnsen
当你学习不使用Command-s时,你可能还想要nnoremap <D-s> <nop>;否则在正常模式下,Command-s似乎会被视为普通的s(它的作用类似于cl:更改右侧的字符)。 - Chris Johnsen
我完全明白你的意思,@ChrisJohnsen。我曾经考虑过这个问题,但是为了提醒自己,我会忍耐一下。 ;) - greduan

0

MacVim只有一个“优势”超过普通的Vim:它支持本地的Mac OS X快捷键。如果你不想使用这些快捷键,那么你可以直接使用普通的Vim。

顺便说一下,当我从TextMate转换时,我也发现这些本地快捷键是学习Vim的障碍。我的解决方案是专注于普通的Vim。在终端里待上一周后,你应该能够完全忽略这些快捷键。

我建议你暂停一下,考虑以更合适的顺序进行操作:

  1. 在终端中,尽可能多地运行$ vimtutor

  2. 再次在终端中,先完成简单任务,然后再完成更复杂的任务,使用$ vim。一开始会有可预测的生产力下降,但只会持续几天/几周。

  3. 一旦你达到了之前的生产力水平,你就可以全职使用Vim。此时,使用MacVim或GVim或普通的$ vim都没有任何区别。

如果不过度依赖插件、他人的vimrc或像janus或spf13这样的“发行版”,则可以获得额外的加分。


我想我会这样做,其中一个原因是因为我的所有配色方案在终端中表现得非常奇怪,我尝试了各种各样的东西,但都不起作用。我想我只需训练自己不使用快捷方式,除非下面的问题解决了。 - greduan
问题在于,即使是默认的看起来也很奇怪。我想你会同意,没有配色方案编码有点困难。但是,无论如何,我会尝试修复它,解决它,并遵循您的建议。 :) - greduan
试试:color desert,即使在16色终端上,它对眼睛也非常舒适。 - romainl
当我在终端中尝试使用vim时,我遇到了一个Python错误,你知道可能是什么问题吗?我已经将信息添加到原始帖子中。 - greduan
1
这是另一个问题的内容。 - romainl
显示剩余3条评论

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