Ordnen Sie in vim im Normalmodus die Escape-Taste :q zu

Ordnen Sie in vim im Normalmodus die Escape-Taste :q zu

Ich verwende vim als Viewer in Midnight Commander und möchte eine Datei schnell anzeigen und schließen. Wie kann ich die Escape-Taste :qim normalen Modus zuordnen, sodass vim nur beendet wird, wenn nichts geändert wird?

Antwort1

Um dies nur für die aktuelle vimSitzung zu tun, geben Sie die folgenden Befehle (in vim) ein. (Leerzeichen wurden der Übersichtlichkeit halber hinzugefügt. Geben Sie kein Leerzeichen ein, außer an den von mir angegebenen Space.)

:mapSpaceCtrl+ VEscSpace:qCtrl+VEnterEnter

Um dies nur für den Rest der aktuellen Terminalsitzung zu tun, geben Sie die folgenden Befehle ein (im Terminal, d. h. in der Shell). (Zeilenumbrüche wurden der Übersichtlichkeit halber hinzugefügt. Geben Sie das Folgende in einer Zeile ein; geben Sie nichts anderes ein Enterals die von mir angegebenen Enter.)

E  X  I  N  I  T  =
"  :  m  a  p  Space  Ctrl+ V  Esc  Space  :  q  Ctrl+V  Enter  "  Enter

und dann

export EXINITEnter

Um die Änderungen „permanent“ zu machen (d. h. bis Sie die Dateien wieder ändern), fügen Sie die obigen Befehle (das EXINIT="…"und export EXINIT) in Ihr .bash_profileund/oder ein .bashrc. (Sie können sie in derselben Zeile zusammenfassen und durch trennen ;. Sie können dies möglicherweise abkürzen, indem Sie sie zu kombinieren export EXINIT="…".) Dies wird erst wirksam, wenn Sie sich erneut anmelden oder möglicherweise eine neue Shell starten, es sei denn, Sie geben einfach die EXINITBefehle oder sourcedie Datei ein, in die Sie die EXINITBefehle eingefügt haben.

Notiz:Wenn Sie Bash nicht als Ihre primäre Shell verwenden, müssen Sie möglicherweise das oben genannte für Ihre Shell ändern.

Versuchen Sie alternativ, den :map …Befehl in Ihre .exrcDatei einzufügen.


Falls dies nicht offensichtlich ist,

:KarteZeichenfolge 1 Zeichenfolge 2

(in vi/ vim) erstellt eine Zuordnung (Übersetzung), so dass der Editor beim Eintippen (im Befehlsmodus) so reagiert, als hätten Sie eingegeben . Und + ist das Super-Escape-Zeichen, das sowohl / als auch der Shell (eigentlich wahrscheinlichstring1string2CtrlVvivimalleProgramme (oder zumindest die meisten von ihnen), dass das folgende Zeichen als wörtliches Textzeichen und nicht als Steuerzeichen interpretiert werden soll. Beachten Sie, dass Ctrl+ Vgefolgt von Enter einem Wagenrücklaufzeichen ergibt, das oft als angezeigt wird ^M; in einem jedoch als interpretiert wird .:map string2Enter

verwandte Informationen