2009-11-24 23 views
6

In vim deaktivieren, wenn ich :wq traf es ist fast immer ein Unfall, der auftrat, wenn die Eingabe :w versucht. Ich möchte :wq deaktivieren.Wie man einen eingebauten Befehl in vim

Der nächstgelegene ich gefunden ist cmap, aber es hat einige seltsame Verhalten. Wenn ich etwas tun, wie

:cmap wq w 

Ich kann nicht einmal mehr Eingang :wq; Es wird nur die Tastenfolgein w im Befehlsmodus neu zugeordnet. Nun kann ich zum Beispiel keinen Such-/Ersetzungsbefehl für eine Zeichenfolge eingeben, die wq enthält.

Ich möchte nur den exakten Befehl :wq zu :w alias oder ein No-Op. Gibt es eine Möglichkeit, dies zu tun?

EDIT: geklärt, warum :cmap für mich keine Option

ist

Antwort

0

Es sieht aus wie die beste Option, nur um :cmap Verhalten verwendet wird, zu erhalten. In dem seltenen Fall, dass ich die Tastatur seqeunce eingeben möchte wq kann ich nur wq treffen, warten Sie eine Sekunde, dann drücken Sie erneut q. Ich fand this possible solution, aber es ist zu komplex für meinen Geschmack.

2

Eine bessere Lösung kann sein:

:cabbrev wq w 

Aber ich bin nicht sicher, warum cmap nicht ausgenommen funktioniert. Eigentlich hatte ich eine meiner Funktionstasten Mapped-Dateien zu speichern:

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

UPDATE: Tippfehler in den ersten Befehl korrigiert.

UPDATE2: mögliche Abhilfe:

:cabbrev wq<CR> w 

HTH

+0

Können Sie bitte erklären: Cabbrew? –

+2

Ich denke, es sollte ': cabbrev' sein. ': cabbrev wq w 'ändert wq in w, nachdem Sie die Leertaste oder die Eingabetaste gedrückt haben, damit' 'wq'' '' w '' wird. Siehe ': help: cabbrev' und': help: ab' für weitere Informationen. – DrAl

+0

Entschuldigung, ich glaube, ich war nicht klar genug in meiner Frage. Wenn Sie tun: cmap und es scheint auch: cabbrew, bedeutet dies, dass die "wq" Tastenfolge im Befehlsmodus auf etwas anderes als "wq" zugeordnet ist. So können Sie zum Beispiel keine Suche nach einer Zeichenfolge mit "wq" durchführen. Alles, was ich tun möchte, ist, es so zu machen, wenn ich den genauen Befehl eingib: wq, ist es Alias ​​zu "w" oder no-op. – user85509