it-swarm.com.de

Wie verlasse ich den Vim-Editor?

Ich stecke fest und kann nicht entkommen. Es sagt:

"type :quit<Enter> to quit VIM"

Aber wenn ich das tippe, erscheint es einfach im Objektkörper.

3437
jclancy

Schlagen Sie die Esc Taste zum Aufrufen des "Normalmodus". Dann können Sie : eingeben, um in den "Befehlszeilenmodus" zu gelangen. Am unteren Bildschirmrand wird ein Doppelpunkt (:) angezeigt, und Sie können einen der folgenden Befehle eingeben. Um einen Befehl auszuführen, drücken Sie die Taste Enter Schlüssel.

  • :q zum Beenden (kurz für :quit)
  • :q! zum Beenden ohne Speichern (kurz für :quit!)
  • :wq schreiben und beenden
  • :wq! zum Schreiben und Beenden, auch wenn die Datei nur Leserechte hat (wenn die Datei keine Schreibrechte hat: Schreibzugriff erzwingen)
  • :x schreiben und beenden (ähnlich wie :wq, aber nur schreiben, wenn es Änderungen gibt)
  • :exit zum Schreiben und Beenden (wie :x)
  • :qa, um alle zu beenden (kurz für :quitall)
  • :cq, um das Programm zu beenden, ohne es zu speichern, und Vim zu veranlassen, einen Fehler ungleich Null zurückzugeben (d. H., Mit Fehler zu beenden)

Sie können Vim auch direkt aus dem "Normalmodus" beenden, indem Sie ZZ eingeben, um zu speichern und zu beenden (wie :x) oder ZQ, um nur zu beenden (wie :q!). (Beachten Sie, dass der Fall hier wichtig ist. ZZ und zz bedeuten nicht dasselbe.)

Vim hat eine umfangreiche Hilfe, auf die Sie mit dem Befehl :help zugreifen können. Dort finden Sie Antworten auf alle Ihre Fragen und ein Tutorial für Anfänger.

4570
dirvine

Bevor Sie einen Befehl eingeben, drücken Sie die Taste Esc Taste . Nachdem Sie es eingegeben haben, drücken Sie die Return bestätigen.

Esc Beendet den aktuellen Befehl und schaltet Vim auf normaler Modus . Nun, wenn Sie drücken :wird der : am unteren Bildschirmrand angezeigt. Dies bestätigt, dass Sie tatsächlich einen Befehl eingeben und die Datei nicht bearbeiten.

Die meisten Befehle haben Abkürzungen, wobei der optionale Teil in Klammern steht: c[ommand].

Mit '*' gekennzeichnete Befehle sind nur Vim-Befehle (nicht in Vi implementiert).

Safe-Quit (schlägt fehl, wenn nicht gespeicherte Änderungen vorliegen):

  • :q[uit] Beendet das aktuelle Fenster . Beenden Sie Vim, wenn dies das letzte Fenster ist. Dies schlägt fehl, wenn Änderungen in current buffer vorgenommen wurden.
  • :qa[ll] * Beenden Sie alle Fenster und Vim, es sei denn, es wurden einige Puffer geändert.

Prompt-quit (fordert auf, wenn nicht gespeicherte Änderungen vorliegen)

  • :conf[irm] q[uit] * Beenden, aber Eingabeaufforderung geben, wenn einige Puffer geändert wurden.
  • :conf[irm] xa[ll] * Schreibe alle geänderten Puffer und beende Vim. Rufen Sie eine Eingabeaufforderung auf, wenn einige Puffer nicht geschrieben werden können.

Änderungen schreiben (speichern) und beenden:

  • :wq Schreibe die aktuelle Datei (auch wenn sie nicht geändert wurde) und beende sie. Das Schreiben schlägt fehl, wenn die Datei schreibgeschützt ist oder der Puffer keinen Namen hat. :wqa[ll] * für alle Fenster.
  • :wq! Das gleiche, schreibt aber auch schreibgeschützte Dateien. :wqa[ll]! * für alle Fenster.
  • :x[it], ZZ (mit details ). Schreiben Sie die Datei nur , wenn sie geändert wurde , und beenden Sie :xa[ll] * für alle Fenster.

Änderungen verwerfen und beenden:

  • :q[uit]!ZQ * Beendet das Programm ohne zu schreiben, auch wenn sich die sichtbaren Puffer geändert haben. Wird nicht beendet, wenn verborgene Puffer geändert wurden.
  • :qa[ll]! *, :quita[ll][!] * Beende Vim, alle Änderungen an den Puffern (einschließlich der ausgeblendeten) gehen verloren.

Drücken Sie Return um den Befehl zu bestätigen.

Diese Antwort bezieht sich nicht auf alle Vim-Befehle und -Argumente zum Schreiben und Beenden. Tatsächlich wird in der Vim-Dokumentation auf sie verwiesen.

Vim hat umfangreiche eingebaute Hilfe, Typ Esc:helpReturn um es zu öffnen.

Diese Antwort wurde von other one inspiriert, ursprünglich von @dirvine verfasst und von anderen SO Benutzern bearbeitet. Ich habe weitere Informationen aus Vim-Referenzen, SO Kommentaren und einigen anderen Quellen beigefügt. Unterschiede für Vi und Vim spiegeln sich ebenfalls wider.

164
Nick Volynkin

Bilder sind tausend Unix-Befehle und -Optionen wert:

Enter image description here

Ich ziehe dies meinen Studenten jedes Semester vor und sie scheinen danach vi zu verstehen.

vi ist eine endliche Zustandsmaschine mit nur drei Zuständen.

Beim Start wechselt vi in ​​den COMMAND-Modus, in dem Sie kurze, wenige Zeichen umfassende Befehle blind eingeben können. Sie wissen, was Sie tun. Das ist nichts für Amateure.

Wenn Sie Text tatsächlich bearbeiten möchten, sollten Sie mit einem aus einem Zeichen bestehenden Befehl in den INSERT-Modus wechseln:

  • i: Gehen Sie anstelle des Cursors zu INSERT
  • I: Gehen Sie am Zeilenanfang in den INSERT-Modus
  • a: Fügen Sie nach dem Cursor ein
  • A: Am Ende der Zeile anhängen
  • o: öffne eine neue Zeile unter der aktuellen Zeile
  • O: öffne eine neue Zeile an der Stelle der aktuellen Zeile

Beantworten Sie nun die Frage: Verlassen.

Sie können vi aus dem EX-Modus beenden:

  • q: Wenn Sie keine Änderungen vorgenommen oder diese zuvor gespeichert haben
  • q !: ignoriert alle Änderungen und beendet
  • wq: speichern und beenden
  • x: das ist gleich wq

w und x akzeptieren einen Dateinamenparameter. Wenn Sie vi mit einem Dateinamen gestartet haben, müssen Sie diesen hier nicht erneut eingeben.

Das Wichtigste zum Schluss: Wie erreichen Sie den EX-Modus?

Der EX-Modus ist für lange Befehle gedacht, die Sie in der unteren Bildschirmzeile eingeben können. Im BEFEHL-Modus drücken Sie den Doppelpunkt, :, und in der unteren Zeile wird ein Doppelpunkt angezeigt, in den Sie die obigen Befehle eingeben können.

Im INSERT-Modus müssen Sie ESC drücken, d. H. Die Escape-Taste, um in den COMMAND-Modus zu wechseln, und dann: um in den EX-Modus zu wechseln.

Wenn Sie sich nicht sicher sind, drücken Sie ESC, um in den Befehlsmodus zu gelangen.

Die robuste Methode ist ESC -: - x-Enter, mit der Ihre Datei gespeichert und beendet wird.

148
Gergely

Wenn Sie beenden möchten, ohne Vim zu speichern nd Vim einen Exit-Code ungleich Null zurückgeben zu lassen, können Sie :cq verwenden.

Ich benutze dies die ganze Zeit, weil ich nicht die Mühe habe, für ! eine kleine Schicht zu machen. Ich leite oft Dinge an Vim weiter, die nicht in einer Datei gespeichert werden müssen. Wir haben auch einen ungeraden SVN-Wrapper in Arbeit, der mit einem Wert ungleich Null beendet werden muss, um ein Einchecken abzubrechen.

74
Sue Spence

Dies ist das Worst-Case-Szenario, wenn Sie Vim beenden möchten, keine Ahnung haben, was Sie getan haben, und es Ihnen egal ist, was mit den von Ihnen geöffneten Dateien geschehen wird.

Ctrl-cEnterEnterviEnterCtrl-\Ctrl-n:qa!Enter

Das sollte dich die meiste Zeit rausbringen.

Einige interessante Fälle, in denen Sie so etwas brauchen:

  • iCtrl-ovg (Sie wechseln in den Einfügemodus, dann in den visuellen Modus und schließlich in den Operator-Pending-Modus.)

  • QappendEnter

  • iCtrl-ogQCtrl-r=Ctrl-k (Danke an porges für diesen Fall)

  • :set insertmode (Dies ist ein Fall, wenn Ctrl-\Ctrl-n kehrt zum normalen Modus zurück)


Bearbeiten: Diese Antwort wurde aufgrund der oben genannten Fälle korrigiert. Ich war:

EscEscEsc:qa!Enter

Dies funktioniert jedoch nicht, wenn Sie in den Ex-Modus gewechselt sind. In diesem Fall müssten Sie Folgendes tun:

viEnter:qa!Enter

Ein vollständiger Befehl für "Ich möchte nicht wissen, was ich getan habe und ich möchte nichts speichern, ich möchte nur jetzt raus!" wäre

viEnterEscEscEsc:qa!Enter

41
Heikki Naski

Falls Sie Vim im einfachen Modus beenden müssen (während Sie die Option -y verwenden), können Sie durch Drücken von in den normalen Vim-Modus wechseln Ctrl + L und dann funktionieren alle normalen Exit-Optionen.

36
wsams

Vim verfügt über drei Betriebsmodi: Eingabemodus, Befehlsmodus und Ex-Modus.

Eingabemodus - alles, was Sie eingeben, alle Tastenanschläge werden auf dem Bildschirm wiedergegeben.

Befehlsmodus oder Escape-Modus - alles, was Sie in diesem Modus eingeben, wird als Befehl interpretiert.

Ex-Modus - Dies ist ein weiterer Editor, z. Es ist ein Zeileneditor. Es funktioniert pro Zeile oder basierend auf einer Reihe von Zeilen. In diesem Modus wird a : wird am unteren Bildschirmrand angezeigt. Dies ist der Ex-Editor.

Um Vim zu beenden, können Sie entweder im Ex-Modus oder im Befehlsmodus beenden. Sie können Vim nicht beenden, wenn Sie sich im Eingabemodus befinden.

Verlassen des Ex-Modus

  1. Sie müssen sicherstellen, dass Sie sich im Befehlsmodus befinden. Drücken Sie dazu einfach die Esc Schlüssel.

  2. Gehen Sie in den Ex-Modus, indem Sie die Taste drücken : Schlüssel

  3. Verwenden Sie zum Beenden eine der folgenden Kombinationen im Ex-Modus:

    :q - Beenden :q! - Beenden ohne Speichern :wq - Speichern & Beenden oder Schreiben & Beenden :wq! - Wie wq, aber Schreibzugriff erzwingen, falls die Dateiberechtigungen schreibgeschützt sind :x - schreibe & beende :qa - beende alle. nützlich, wenn mehrere Dateien geöffnet werden wie: vim abc.txt xyz.txt

Verlassen des Befehlsmodus

  1. Drücken Sie die Escape-Taste. Sie haben dies wahrscheinlich bereits getan, wenn Sie sich im Befehlsmodus befinden.

  2. Drücken Sie die ZZ-Taste (shift zz) - Speichern und beenden

  3. Drücken Sie die Taste ZQ (shift zq) - verlassen Sie das Menü ohne zu speichern.

27
tovishalck

Nach dem Schlagen ESC (oder cmd + C auf meinem Computer) müssen Sie treffen : Damit der Befehl Eingabeaufforderung angezeigt wird. Dann können Sie quit eingeben.

Möglicherweise können Sie das System nicht beenden, da Ihre Daten nicht gespeichert wurden. Wenn Sie trotzdem beenden möchten, geben Sie ein ! direkt nach dem Beenden (d. h. :quit!).

25
deleteMe

Es ist tatsächlich unglaublich einfach, vim zu beenden.

Drücken Sie Escape, drehe dich zweimal um, trete die Katze, koche die perfekte Tasse Tee, laufe eine 4-Minuten-Meile , besteige den Everest, mache den Kessel-Lauf in unter 12 parsecs , rette den Kobayashi Mar , beanspruche den eisernen Thron , erreiche Weltfrieden , drücke :qEnter

22
Caltor

Ich habe Vim durch die Installation eines Git-Clients unter Windows erhalten. :q würde Vim nicht für mich verlassen. :exit hat jedoch ...

16

Ich möchte mein zwei Cent hinzufügen. Die Frage wurde gestellt hier .

Der Befehl q mit der Nummer schließt den angegebenen Split an dieser Position.

:q<split position> oder :<split position>q schließen den Split an dieser Position.

Angenommen, Ihr Vim-Fensterlayout sieht wie folgt aus:

-------------------------------------------------
|               |               |               |
-------------------------------------------------
|               |               |               |
|               |               |               |
|    Split 1    |    Split 2    |     Split 3   |
|               |               |               |
-------------------------------------------------

Wenn Sie den Befehl q1 ausführen, wird der erste Split geschlossen. q2 schließt den zweiten Split und umgekehrt.

Die Reihenfolge der geteilten Position im Befehl quit spielt keine Rolle. :2q oder :q2 schließen den zweiten Split.

Wenn die Teilungsposition, die Sie an den Befehl übergeben, größer als die Anzahl der aktuellen Teilungen ist, wird die letzte Teilung einfach geschlossen.

Wenn Sie beispielsweise den q100 im obigen Fenster-Setup ausführen, in dem nur drei Teilungen vorhanden sind, wird die letzte Teilung geschlossen (Teilung 3).

5
Subash

Vim beenden

  1. Ctrl+Z
  2. X key
  3. C key
5
Alimov Shohrukh

Drücken Sie Esc um den Einfügemodus zu verlassen und dann können Sie :wq zum Speichern und Beenden oder einfach :q zum normalen Beenden ausführen. :)

1
Connie