2009-11-24 8 views
6

vimでは、:wqにヒットしたときには、入力しようとしたときにほとんどの事故が発生していたのですが、:wです。 :wqを無効にします。vimでビルトインコマンドを無効にする方法

私が見つけたのはcmapですが、それはちょっと変わった動作です。私が何かをすると

:cmap wq w 

私はもはや入力することができません:wq;コマンドモードでキーストロークシーケンスwqwに再マップするだけです。今私はwqを含む文字列に検索/置換コマンドを入力することはできません。

正確なコマンド:wq:wまたはノーオペレーションのエイリアスを付けたいだけです。これを行う方法はありますか?

:cabbrev wq w 

しかし、私は除外としてcmapが動作しない理由はわからない:

EDITは::cmapは私のためのオプション

答えて

0

最良の選択肢はただ:cmap行動に慣れることですように見えます。まれなイベントで、キーボードシーケンスを入力したいwqwqにちょうどヒットし、もう一度qを押します。私はthis possible solutionを見つけましたが、それは私の好みにはあまりにも複雑です。

2

よりよい解決策をすることができない理由を明らかにしました。 は、実際に私は、ファイルを保存するために、1つの私のファンクションキーをマッピングしていた:

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

UPDATE:最初のコマンドで修正タイプミスを。

アップデート2:可能な回避策:

:cabbrev wq<CR> w 

HTH

+0

あなたは説明していただけますか? –

+2

私はそれが ':cabbrev'であるべきだと思います。 ':cabbrev wq w'は空白を入力した後にwqにwqを変更するので、':wq'は ':'を行います。詳細は ':help:cabbrev'と':help:ab'を参照してください。 – DrAl

+0

申し訳ありませんが、私は私の質問で十分に明確ではなかったと思います。 もし:cmapそしてそれはまたcabbrewと思われます。コマンドモードの "wq"キーストロークシーケンスが "wq"以外のものにマップされていることを意味します。たとえば、 "wq"を含む文字列を検索/置換することはできません。私がしたいのは、正確なコマンド:wqを入力すると、 "w"またはno-opにエイリアスされます。 – user85509

関連する問題