如何禁用vim中的内置命令

问题描述:

在vim中,当我点击:wq时,尝试输入:w时几乎总是发生意外。我想要禁用:wq如何禁用vim中的内置命令

我发现最近的是cmap,但它有一些奇怪的行为。如果我这样做

:cmap wq w 

我再也不能连输入:wq;它只是在命令模式下将按键序列wq重新映射到w。例如,现在我不能在包含wq的字符串上输入搜索/替换命令。

我只想将确切的指令:wq改为:w,或者不要操作。有没有办法做到这一点?

编辑:澄清为什么:cmap不适合我

它看起来像最好的选择是只习惯于:cmap行为。在罕见的情况下,我想输入键盘序号wq我只需要点击wq,等一下,然后再次点击q。我确实发现this possible solution,但对我的口味来说太复杂了。

一种选择更好的解决方法可以是:

:cabbrev wq w 

但我不知道为什么cmap为例外不起作用。 其实我已经映射到一个我的功能键来保存文件:

:map <F2> :w<CR> 
:nmap <F2> <ESC>:w<CR>i 

UPDATE:错字第一个命令纠正。

UPDATE2:可能的解决方法:

:cabbrev wq<CR> w 

HTH

+0

你能解释一下吗:cabbrew? – 2009-11-24 05:59:42

+2

我认为它应该是':cabbrev'。 ':cabbrev wq w'会在你按下空格或输入后将wq改为w,所以它会使':wq'做':w'。有关更多信息,请参阅':help:cabbrev'和':help:ab'。 – DrAl 2009-11-24 08:16:58

+0

对不起,我想我的问题还不够清楚。 如果你这样做:cmap,它也似乎是:cabbrew,这意味着命令模式下的“wq”击键序列被映射到“wq”以外的其他值。因此,例如,你不能在包含“wq”的字符串上进行搜索/替换。我想要做的就是让它如此,如果我输入确切的命令:wq,它是别名为“w”或无操作。 – user85509 2009-11-24 08:26:05