在Vim中禁用“进入Ex模式”


71

我每天偶然得到以下10倍的次数。

进入防爆模式。键入“视觉”进入普通模式。

如何禁用在Vim中导致组合的组合?


9
很高兴我发现了这个问题...让我猜想,您是dvorak的同伴,不是吗?:)
Nik Reiman

1
@NikReiman是的,您是对的。从2008
LéoLéopoldHertz tz 2012年


同意以下所有答案,您只需将其映射即可。但是您确定要禁用ex模式吗?这可能非常有用,这是vimgirl的一段视频,展示了您可以在ex模式下进行的操作:youtube.com/watch? v=QP_xm0VwQa0&feature=youtu.be PS(5年前,当我的手腕开始受伤后,我转向了dvorak,疼痛消失了(这是一个了不起的键盘布局)
songz

Answers:


56

<Nop>是用于将键映射为“无”。请参阅:h <Nop>

:map Q <Nop>

这在命令模式下对我有效,但是如何将其放在.vimrc中呢?我尝试了一堆变体,但没有一个起作用。
Andrew Wagner'3

我的.vimrc中的“ map Q <ESC>”起作用了。只是不要尝试在同一行之后添加任何评论。
Andrew Wagner

9
我建议始终使用noremap而不是普通地图,请参阅learningvimscriptthehardway.stevelosh.com/chapters/05.html在这种情况下,理论上永远无法重新映射地图(我认为),但绝对不要使用“普通地图”策略无论如何。
Niels Bom 2012年

@NielsBom感谢您指出!您节省了我的时间,并向我解释了我在Vim中的错误。在您发表评论之前,我没有意识到。
莱奥列奥波尔德·赫兹준 영

26

该答案基于@NielsBom的评论2012年10月4日和@BrianCarper的回答2009年8月13日。

我认为NielsBom是完全正确的,请参阅文章。该命令map在Vim中确实是邪恶的,多年来已经给我造成了很多问题。在NielsBom发表评论之前,我没有意识到这件事。因此,请改用以下命令:

:nnoremap Q <Nop>

2
@NielsBohrn提出了不同的观点:他建议使用noremap命令的版本来防止重新映射右侧。在本例中为:nnoremap Q <Nop>,但是由于右侧为<Nop>,因此重新映射是无关紧要的。
GLTS

该评论已包含在答案中。我选择NielsBom的建议作为此处的可接受答案,因为这是我想要的。
莱奥波德·赫兹(LéoLéopoldHertz)2015年

25

“组合”为Q。要禁用它,只需映射Q到其他内容:

:map Q <whatever>

我使用gq,它用于格式化文本。

如果您不想执行任何操作,请将其映射到<Nop>

:map Q <Nop>

0

如果您不想将其映射到其他内容,请使用:unmap。如果您确实有其他想法,:map则可以使用-查看帮助页面以查看各种变体,以指定将在哪种模式下使用地图。


2
:unmap确实会删除映射,但不会删除默认值,在这种情况下。
R. Martinho Fernandes

一开始我也这么认为。我的答案最初是:unmap像您一样提到的,但是后来我在vim中尝试了一下,才意识到这是行不通的。
R. Martinho Fernandes

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.