Wie verlasse ich Vi?

81

Ich habe Vi auf meinem Ubuntu-Rechner gestartet. Allerdings bin ich neu in Vi, und jetzt kann ich nicht mehr aufhören. Ich sehe den Editor und kann Text schreiben, in der unteren Zeile steht ein Label "Aufnahme".

Wie beende ich Vi?

Jonas
quelle
1
Die "Aufnahme" bedeutete übrigens, dass Sie ein Makro aufzeichnen. Nicht, dass das noch wichtig wäre.
Frabjous
4
Diese Frage bringt solche "lustigen" Erinnerungen zurück. Ich bin so froh, dass ich dieses Gefühl überwunden habe.
Frabjous
Wie können wir aus dem schreibgeschützten Modus in Linux (Ubuntu in VMware installiert) in den Einfügemodus zurückkehren?
2
Das Verlassen von Vim ist jetzt ein Meme.
noɥʇʎԀʎzɥʇʎԀʎ
2
Für diejenigen, die diesen Witz noch nicht gesehen haben: twitter.com/iamdevloper/statuses/435555976687923200
Federico Poloni

Antworten:

91

vim ist ein modaler editor . Drücken Sie die ESCTaste in erhalten Normalen (Befehl) Modus geben Sie dann ein :qund drücken Sie Enter.

Um den Vorgang zu beenden, ohne Änderungen zu speichern, geben Sie ein :q!und drücken Sie Enter.

Siehe auch Ausstieg aus der Vim-Dokumentation.

Sinan Ünür
quelle
9
Dank: Ich habe versucht , dass Befehle, aber sie nach dem Ausführen ich wurde aufgefordert , mit: E37: No write since last change (add ! to override). Ich habe nichts zu retten.
Jonas
12
Verwenden :wqSie diese Option, wenn Sie das Bearbeitete speichern und dann beenden möchten. :q!wenn Sie beenden und Ihre Änderungen zurücklassen möchten.
Steven D
Wenn Sie etwas geschrieben haben, von dem Sie eine Kopie erstellen möchten, können Sie :w newFileName.txtdas schreibgeschützte Problem auch außerhalb von vi oder vim lösen .
Kevin Cantu
5
beenden :q; beenden erzwingen :q!; beenden und speichern :wqoder:x
fromnaboo 06.10.12
2
@Jonas, :qall!ich vermute, du hast das nächste Mal mehr Dateien in einem einzigen Puffer geöffnet.
Alan Dong
11

Ich benutze ctrl+ [die erzeugen escSequenz, das hält mich davon ab, die an den Fingern aus der Grundreihe ( nicht vergessen , die bewegen escSchlüssel an einem anderen Ort war , als vierfunden wurde. :wqWerden alle Dateien regardeless notgedrungen schreiben. Ich schlage vor , mit ZZ(der shift+ zzweimal ), der nur schreibt, wenn eine Änderung in der Datei vorgenommen wurde. Dies :xaist auch das Gleiche, ZZaußer wenn in der Editorinstanz mehr als eine Datei geöffnet ist (z. B. vim-Registerkarten). Hinweis: Ich bin nicht sicher, ob dies alles der Fall ist 100% kompatibel mit allen vi Klonen, aber ich weiß, dass es mit vim funktioniert

Xenoterracid
quelle
1
Vielen Dank. Der ZZBefehl scheint nützlich zu sein. Ich kann den Punkt mit sehen, Ctrl+[aber ich benutze ein schwedisches Tastaturlayout und ich muss drücken AltGr+8, um zu bekommen [, das wäre Ctrl+AltGr+8für mich :(
Jonas
Beachten Sie auch ZQist effektiv das gleiche wie :q!. Dies ist jedoch kein Standard. ZZ, Auf der anderen Seite wird in POSIX angegeben .
Wildcard
4

Das Verlassen des vi ist ein anderer Weg Esc :x.

Die Option wird zum Speichern und Beenden gleichzeitig verwendet.

loganaayahee
quelle
2
Beachten Sie, dass wie ZZ, :xwird die Datei nur schreiben , wenn ihr Inhalt geändert hat, im Gegensatz zu :wq.
Juli
2

Wie Sinan sagte, ist vim ein Modal Editor. Wenn du wissen willst, ob das für dich funktioniert, solltest du vielleicht etwas Zeit investieren und laufen, vimtutorwas ein interaktiver Weg ist, um vim zu lernen. (Außerdem erfahren Sie, wie Sie das Programm beenden, was die Modi bedeuten und was Sie in den einzelnen Modi tun können.)

tante
quelle
-2

Nach der Änderung drücken Sie bitte ESCund den angegebenen Befehl :wq!.

Dadurch wird die neue Änderung zwangsweise in die schreibgeschützte Datei geschrieben. Früher hat es nicht funktioniert, da die Datei schreibgeschützt ist.

Arif A.
quelle
1
Warum beantworten Sie eine Frage von vor 4 Jahren mit einer Wiederholung der Top-Antwort? Es ist ohnehin falsch: Dadurch wird das Schreiben einer schreibgeschützten Datei nicht erzwungen. Es wird versucht zu schreiben, schlägt möglicherweise fehl und wird dann das Beenden ohne Speichern erzwungen.
Chris
Ich habe es mit den vorherigen Kommentaren versucht und es hat nicht funktioniert. Ich dachte, es wäre nützlich zu teilen, was ich getan habe. Es ist nicht wichtig, wann die Frage gestellt wurde, sondern ob die Lösungen zutreffen oder nicht.
Arif A.
-2

versuchen Sie die Kombination von controlundZ

Samsoty
quelle
2
Dadurch bleibt vi im Hintergrund.
Archemar