Wie wechsle ich in Vim zwischen Befehls- und Einfügemodus?

84

Ich habe gerade angefangen, Vim als IDE zu verwenden. Ich habe es jetzt eine Weile als Testeditor verwendet, sodass ich nicht sehr oft in den Befehlsmodus wechseln musste. Da ich jedoch in Java programmiere, muss ich in den Befehlsmodus wechseln, um die Datei zu erstellen, zu kompilieren / auszuführen ... usw.

Das Problem ist: Ich brauche einen guten Weg, um zwischen den beiden Modi zu wechseln.

Ich habe online gesucht und es heißt, dass der <Esc>Schlüssel das tun soll, aber das funktioniert bei mir nicht (vielleicht nicht bei gVim? Ich weiß nicht warum.)

Ich muss CTRLOjedes Mal drücken , um in den Befehlsmodus zu wechseln. Die Escape-Taste funktioniert in diesem Modus. Sie bringt mich zurück in den Einfügemodus. Aber gibt es eine bessere oder einfachere Möglichkeit, zwischen Befehlsmodus und Einfügemodus zu wechseln?

Ravish Chawla
quelle
2
Esc ist definitiv der richtige Schlüssel, um eine Einfügung zu beenden. Eine Einfügung kann auf verschiedene Arten gestartet werden. Kleinbuchstaben i, um mit dem Einfügen an Ihrem Cursor zu beginnen, Großbuchstaben I, um mit dem Einfügen am Zeilenanfang zu beginnen usw.
Vaughn Cato
Ausgehend von einer leeren Datei sollten die folgenden Zeichen eine Datei mit dem Wort "Hallo" enthalten: ihello<ESC>:w hello.txt<ENTER>
Vaughn Cato
8
ctrl-[funktioniert als Ersatz für Esc auf vielen Tastaturen.
Vaughn Cato

Antworten:

51

Ihr Vim wird anscheinend im einfachen Modus gestartet . Siehe :help easy.

Dies geschieht, wenn Vim mit dem -yArgument oder als aufgerufen wird oder wenn evimSie :set insertmodeirgendwo in Ihrer .vimrcKonfiguration eine haben. Suchen Sie die Quelle und deaktivieren Sie sie. vorübergehend kann dies auch über Ctrl+ erfolgen O :set noim Enter.

Ingo Karkat
quelle
Ich denke das war es. Ich hatte den Einfügemodus in meiner Datei aktiviert. Nachdem ich es entfernt habe, funktioniert der Escape-Schlüssel einwandfrei. Vielen Dank!
Ravish Chawla
7
das ist einfacher Modus!?
Stachu
5
Vim easy mode, das ist ein Oxymoron. Ist es dort möglich, vim zu verlassen?
Davos
1
@Davos, das ist der Modus, in dem es im Einfügemodus gestartet wird. Ironischerweise ist es ein Modus, in dem es nicht möglich ist, vim zu verlassen: p "normaler Modus" ist viel einfacher, nur alt +:, x XD
Fuseteam
112

Durch Drücken ESCvon wird der Einfügemodus in den normalen Modus beendet, in dem Sie drücken können, :um einen Befehl einzugeben. Drücken Sie ierneut, um zum Einfügemodus zurückzukehren, und Sie können loslegen.

Ich bin kein Vim-Guru, daher kann jemand anderes erfahrener sein und Ihnen andere Optionen geben.

Ricardo Souza
quelle
3
Für die meisten von uns hatte die akzeptierte Antwort jedoch die Antwort auf das spezifische Problem.
Saul Axel Martinez Ortiz
19

Dies wurde in anderen Fragen erwähnt , ctrl + [entspricht jedoch ESCallen Tastaturen.

begolf123
quelle
Ich wusste das nie, nützlich, wenn der Escape-Schlüssel nicht unterstützt wird
Shuva
Wow, danke für diese Information! Das Kopieren von Tastenanschlägen durch Tmux ist jetzt viel sinnvoller.
Thomas Legris
4

Verwenden von jj

In meinem Fall die Einstellung .vimrc (oder in gVim ist es in _vimrc) unten.

inoremap jj <Esc>   """ jj key is <Esc> setting
StarMomo
quelle
Dies ist eine häufige Neuzuordnung. Ich finde, es hat eine leichte Verzögerung, da es auf zusätzliche Zeicheneingabe wartet. Alternativ können Sie Ihren Capslock-Schlüssel mithilfe eines KeyRemap4MacBook auf einem Macbook neu
zuordnen
Ich fand es einfacher, Tab zu Esc neu zuzuordnen: 3
Fuseteam
3

Ich komme von Emacs und habe festgestellt, dass ich ctrl +Schlüssel mag, um Dinge zu erledigen, und in vim habe ich festgestellt, dass beide [ctrl + C]und [alt + backspace]vom Einfügemodus in den Normalmodus wechseln. Sie könnten versuchen, herauszufinden, ob eines davon für Sie funktioniert.

Maxorcist
quelle
2

Für mich war das Problem, dass ich mich im Aufnahmemodus befand . Um den Aufnahmemodus zu verlassen, drücken Sie q. Dann Escarbeitete wie erwartet für mich.

Feindealpfa
quelle
1

Sie können Alt + H, J, K, L verwenden, um den Cursor im Einfügemodus zu bewegen.

Khoi Hoang
quelle
1
Nein, das kannst du nicht. Das ist wahrscheinlich eine Neuzuordnung Ihrer Konfiguration.
Saul Axel Martinez Ortiz
@ SaulAxelMartinezOrtiz Ja, Sie können, obwohl es technisch den normalen Modus verlässt, wonach Sie sich im normalen Modus bewegen können: p
Fuseteam
0

Es gibt auch eine weitere Lösung für diese Art von Problem, die meiner Meinung nach eher selten ist, und die möglicherweise auftritt, wenn Sie vim unter OS X Sierra verwenden. Eigentlich ist es ein Problem mit der Esc-Taste - nicht mit vim. Zum Beispiel konnte ich mit Esc kein Vollbildvideo auf Youtube beenden, aber ich habe ein paar Monate damit gelebt, bis ich das gleiche Problem mit vim hatte.

Ich habe diese Lösung gefunden. Wenn Sie faul genug sind, einem externen Link zu folgen, hat es geholfen, Siri auszuschalten und den Prozess im Aktivitätsmonitor zu beenden.

Oleander
quelle