2009-11-24 50 views
6

在vim中,當我點擊:wq時,嘗試輸入:w時幾乎總是發生意外。我想要禁用:wq如何禁用vim中的內置命令

我發現最近的是cmap,但它有一些奇怪的行爲。如果我這樣做

:cmap wq w 

我再也不能連輸入:wq;它只是在命令模式下將按鍵序列wq重新映射到w。例如,現在我不能在包含wq的字符串上輸入搜索/替換命令。

我只想將確切的指令:wq改爲:w,或者不要操作。有沒有辦法做到這一點?

編輯:澄清爲什麼:cmap不適合我

回答

0

它看起來像最好的選擇是隻習慣於:cmap行爲。在罕見的情況下,我想輸入鍵盤序號wq我只需要點擊wq,等一下,然後再次點擊q。我確實發現this possible solution,但對我的口味來說太複雜了。

2

一種選擇更好的解決方法可以是:

: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