Frage Wie beende ich den Vim-Editor?


Ich stecke fest und kann nicht entkommen. Es sagt:

"type :quit<Enter> to quit VIM"

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


2704
2017-08-06 12:25


Ursprung


Antworten:


Treffe die Esc um in den "Normalmodus" zu gelangen. Dann kannst du tippen : um in den "Befehlszeilenmodus" zu gelangen. Ein Doppelpunkt (:) erscheint unten auf dem Bildschirm und Sie können einen der folgenden Befehle eingeben. Um einen Befehl auszuführen, drücken Sie die Taste Eingeben Schlüssel.

  • :q  aufhören (kurz für :quit)
  • :q! aufhören ohne zu sparen (kurz für :quit!)
  • :wq schreiben und aufhören
  • :wq! schreiben und beenden, auch wenn Datei nur Leseberechtigung hat (wenn Datei keine Schreibberechtigung hat: force write)
  • :x  schreiben und beenden (ähnlich wie :wq, aber schreibe nur wenn es Änderungen gibt)
  • :exit schreiben und beenden (wie :x)
  • :qa alles aufgeben (kurz für :quitall)
  • :cq um ohne Speichern zu beenden und zu veranlassen, dass Vim einen Fehler ungleich Null zurückgibt (d. h. mit Fehler beenden)

Sie können Vim auch direkt aus dem "Befehlsmodus" beenden, indem Sie eingeben ZZ speichern und beenden (wie :x) oder ZQ einfach aufhören (wie :q!). (Beachten Sie, dass der Fall hier wichtig ist. ZZ und zz meine nicht das Gleiche.)

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


3742
2017-08-06 12:46



Bevor Sie einen Befehl eingeben, Schlag den Esc Schlüssel. Nachdem Sie es eingegeben haben, drücken Sie die Rückkehr bestätigen.

Esc beendet den aktuellen Befehl und schaltet Vim auf normaler Modus. Jetzt, wenn Sie drücken :, das : erscheint bei der Unterseite des Bildschirms. 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 '*' markierte Befehle sind nur Vim (nicht in Vi implementiert).

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

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

Prompt-Quit (fragt, ob nicht gespeicherte Änderungen vorliegen)

  • :conf[irm] q[uit]* Beenden, aber geben Sie eine Eingabeaufforderung, 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 Schreiben Sie die aktuelle Datei (auch wenn sie nicht geändert wurde) und beenden Sie 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 selbe, schreibt aber auch schreibgeschützte Dateien. :wqa[ll]!* für alle Fenster.
  • :x[it], ZZ(mit Einzelheiten). Schreiben Sie nur die Datei wenn es geändert wurde und hör auf, :xa[ll]* für alle Fenster.

Änderungen verwerfen und beenden:

  • :q[uit]!  ZQ* Beenden ohne zu schreiben, auch wenn sichtbare Puffer Änderungen aufweisen. Wird nicht beendet, wenn versteckte Puffer geändert wurden.
  • :qa[ll]!*, :quita[ll][!]* Quit Vim, alle Änderungen an den Puffern (einschließlich der versteckten) gehen verloren.

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

Diese Antwort bezieht sich nicht auf alle Befehle und Argumente zum Schreiben und Beenden von Vim. In der Tat sind sie in der verwiesen Vim Dokumentation.

Vim hat umfangreiche eingebaute Hilfe, Typ Esc:helpRückkehr um es zu öffnen.

Diese Antwort wurde von der andere, ursprünglich von @dirvine verfasst und von anderen SO-Benutzern bearbeitet. Ich habe mehr Informationen von Vim-Referenz, SO-Kommentaren und einigen anderen Quellen hinzugefügt. Unterschiede für Vi und Vim spiegeln sich ebenfalls wider.


138
2018-06-08 13:34



Bilder sind tausend Unix-Befehle und -Optionen wert:

Enter image description here

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

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

Beim Starten wechselt vi in ​​den COMMAND-Modus, in dem Sie kurze, wenige Zeichenbefehle eingeben können. blindlings. Du weißt, was du tust; Das ist nichts für Amateure.

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

  • i: gehe an die Stelle des Cursors zu INSERT
  • I: gehe in den INSERT-Modus am Anfang der Zeile
  • a: anhängen nach der Mauszeiger
  • A: am Ende der Zeile anhängen
  • O: öffnen eine neue Zeile unterhalb der aktuellen Zeile
  • O: öffnen eine neue Zeile an der Stelle der aktuellen Zeile

Nun, beantworte die Frage: Beenden.

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

  • q: wenn Sie keine Änderungen vorgenommen oder zuvor gespeichert haben
  • q !: ignoriert alle Änderungen und Verlassen
  • wq: speichern und beenden
  • x: Das ist gleich wq

w und x Akzeptieren Sie einen Dateinamen Parameter. Wenn Sie vi mit einem Dateinamen gestartet haben, müssen Sie ihn nicht erneut eingeben.

Endlich das Wichtigste: Wie kommt man zum EX-Modus?

EX-Modus ist für lange Befehle, die Sie in der unteren Zeile des Bildschirms eingeben können. Im COMMAND-Modus drücken Sie den Doppelpunkt, :In der unteren Zeile erscheint ein Doppelpunkt, in den Sie die obigen Befehle eingeben können.

Im INSERT-Modus müssen Sie ESC, d. H. Die Escape-Taste, in den COMMAND-Modus und dann: in den EX-Modus schalten.

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

Also, die robuste Methode ist ESC -: - x-Eingabe, die Ihre Datei speichert und beendet.


69
2018-05-26 12:24



Wenn Sie beenden möchten, ohne in Vim zu speichern und Lassen Sie Vim einen Nicht-Null-Exit-Code zurückgeben, den Sie verwenden können :cq.

Ich benutze es die ganze Zeit, weil ich nicht gestört werden kann, um mich zu bewegen !. Ich übertrage Dinge oft zu Vim, die nicht in einer Datei gespeichert werden müssen. Wir haben auch einen ungeraden SVN-Wrapper bei der Arbeit, der mit einem Wert ungleich Null verlassen werden muss, um ein Einchecken abzubrechen.


65
2018-01-28 10:59



Dies ist für das Worst-Case-Szenario, Vim zu beenden, wenn Sie nur wollen, keine Ahnung haben, was Sie getan haben, und es ist Ihnen egal, was mit den geöffneten Dateien passiert.

Strg-cEingebenEingebenviEingebenStrg- \Strg-n:qa!Eingeben

Das sollte dich die meiste Zeit rausbringen.

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

  • iStrg-ovg (Sie kommen in den Einfügemodus, dann in den visuellen Modus und dann in den Modus "Operator anstehend")

  • QappendEingeben

  • iStrg-ogQStrg-r=Strg-k (Danke an Porges für diesen Fall)

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


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

EscEscEsc:qa!Eingeben

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

viEingeben:qa!Eingeben

Also ein vollständiger Befehl für "Ich will nicht wissen, was ich getan habe und ich möchte nichts retten, ich will einfach nur raus!" wäre

viEingebenEscEscEsc:qa!Eingeben


37
2018-06-24 13:38



Für den Fall, dass Sie Vim verlassen müssen Einfacher Modus (während dem Benutzen -y Option) können Sie den normalen Vim-Modus durch Drücken von Strg + L und dann wird eine der normalen Optionen zum Beenden funktionieren.


32
2017-07-18 13:48



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

Möglicherweise stellen Sie fest, dass der Computer das Beenden nicht zulässt, weil Ihre Daten nicht gespeichert wurden. Wenn Sie trotzdem aufhören möchten, geben Sie ein ! direkt nach dem Beenden (d.h. :quit!).


23
2017-11-28 15:25



Vim hat 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 anderer Redakteur, z. Es ist ein Zeileneditor. Es funktioniert pro Zeile oder basierend auf einer Reihe von Linien. In diesem Modus a : erscheint am unteren Bildschirmrand. Dies ist der Ex-Editor.

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

Aus dem Ex-Modus aussteigen

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

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

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

    :q - Verlassen :q! - Beenden ohne zu speichern :wq - Speichern und beenden oder schreiben und beenden :wq! - Wie wq, aber Schreibvorgang erzwingen, wenn Dateiberechtigungen schreibgeschützt sind :x - Schreiben und beenden :qa - Gib alles auf. nützlich, wenn mehrere Dateien wie folgt geöffnet werden: vim abc.txt xyz.txt

Verlassen des Befehlsmodus

  1. Drücken Sie die Escape-Taste. Das hast du wahrscheinlich schon gemacht, wenn du im Kommandomodus bist.

  2. Pressekapital ZZ (shift zz) - sicherer Ausgang

  3. Drücken Sie Kapital ZQ (shift zq) - Beenden ohne Speichern.


22
2018-05-24 02:46



Ich habe Vim, indem ich einen Git-Client unter Windows installiert habe. :q würde Vim nicht für mich verlassen. :exit tat aber ...


14
2018-02-05 11:30



Ich möchte meine hinzufügen zwei Cent darauf. Die Frage wurde gestellt Hier.

Das q Befehl mit Nummer schließt den gegebenen Split in dieser Position.

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

Angenommen, Ihr Vim-Fensterlayout ist wie folgt:

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

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

Die Reihenfolge der Teilungsposition im Befehl quit ist nicht von Bedeutung. :2qoder :q2 schließt den zweiten Split.

Wenn die Splitposition, die Sie an den Befehl übergeben haben, größer ist als die Anzahl der aktuellen Splits, wird einfach der letzte Split geschlossen.

Zum Beispiel, wenn Sie das ausführen q100 Bei der obigen Fensterkonfiguration, bei der nur drei Splits vorhanden sind, wird der letzte Split geschlossen (Split 3).


2
2018-02-12 23:41