2012-11-01 1 views
56

Ich habe gerade angefangen, Vim als IDE zu verwenden. Ich habe es schon eine Weile als Testeditor benutzt, so dass ich nicht sehr oft in den Kommandomodus gehen musste. Aber, da ich in Java programmiere, muss ich in den Befehlsmodus gehen, um die Datei zu erstellen, sie zu kompilieren/laufen zu lassen usw.Wie kann ich in Vim zwischen Befehls- und Einfügemodus wechseln?

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

Ich sah online und es sagt, dass die <Esc> Schlüssel, tun soll, aber das ist für mich nicht funktioniert (vielleicht ist es nicht für gVim? Ich weiß nicht, warum.)

Ich muss Drücken Sie CTRLO jedes Mal, um in den Befehlsmodus zu gehen; die Escape-Taste funktioniert von diesem Modus aus ... bringt mich zurück in den Einfügemodus. Aber gibt es eine bessere oder einfachere Möglichkeit, zwischen Befehlsmodus und Einfügemodus zu wechseln?

+2

Esc ist definitiv der richtige Schlüssel, um einen Einsatz zu beenden. Ein Insert kann auf verschiedene Arten gestartet werden. Kleinbuchstaben i zum Einfügen an Ihrem Cursor, Großbuchstaben I zum Einfügen am Anfang der Zeile usw. –

+0

Ausgehend von einer leeren Datei sollten die folgenden Zeichen eine Datei mit dem Wort "Hallo" enthalten: 'ihello : w hello.txt ' –

+5

' ctrl- ['funktioniert als Ersatz für Esc auf vielen Tastaturen. –

Antwort

34

Sieht aus wie Ihr Vim in easy-Modus gestartet wird. Siehe :help easy.

Dies geschieht, wenn Vim mit dem -y Argument oder als evim aufgerufen wird, oder vielleicht haben Sie eine :set insertmode irgendwo in Ihrer .vimrc Konfiguration. Finde die Quelle und deaktiviere sie; zeitweise kann dies auch über durchgeführt werden. Ctrl + O:set noimGeben Sie ein.

+0

Ich denke, das war es. Ich hatte den Einfügemodus in meiner Datei aktiviert. Nachdem ich es entfernt habe, funktioniert die Escape-Taste einwandfrei. Vielen Dank! –

+1

Dies ist ein einfacher Modus !? – statue

+1

Vim Easy-Modus, das ist jetzt ein Oxymoron. Ist es möglich, vim zu verlassen? – Davos

73

Drücken ESC quitt von Insert-Modus in den Normalmodus, in dem Sie drücken können : einen Befehl eingeben. Drücken Sie erneut i, um in den Einfügemodus zurückzukehren, und Sie können loslegen.

Ich bin kein Vim-Guru, also kann jemand anderes erfahrener sein und Ihnen andere Möglichkeiten geben.

4

Mit jj

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

inoremap jj <Esc> """ jj key is <Esc> setting 
+0

Dies ist eine allgemeine Neuzuordnung. Ich finde es hat eine leichte Verzögerung, da es auf zusätzliche Zeicheneingabe wartet. Alternativ können Sie Ihren Capslock-Schlüssel zu esc mit etwas wie KeyRemap4MacBook auf einem Macbook neu zuordnen: https://github.com/tekezo/KeyRemap4MacBook – Koobz

7

Dies hat in other questions erwähnt worden, aber ctrl + [ ist ein Äquivalent zu ESC auf allen Tastaturen.

+0

Ich wusste nie, dass nützlich, wenn Escape-Taste nicht unterstützt wird – shuva

0

Es gibt auch eine weitere Lösung für diese Art von Problem, das ist eher selten, denke ich, und Sie können es erleben, wenn Sie vim auf OS X Sierra verwenden. Eigentlich ist es ein Problem mit der Esc-Taste - nicht mit vim. Zum Beispiel konnte ich das Fullscreen-Video auf Youtube mit Esc nicht beenden, aber ich lebte ein paar Monate damit, bis ich das gleiche Problem mit Vim hatte.

Ich fand this Lösung. Wenn Sie faul sind, einem externen Link zu folgen, haben Sie Siri ausgeschaltet und den Prozess im Aktivitätsmonitor beendet.

0

von Emacs kommend die ich gefunden habe, dass ich ctrl + Schlüssel wie Dinge zu tun, und in vim Ich habe festgestellt, dass sowohl [ctrl + C] und [alt + backspace] wird Normal-Modus von Insert-Modus. Sie könnten versuchen und sehen, ob einige von denen für Sie arbeiten.