So beenden Sie den Vi- oder Vim-Editor

Der vi-Editor kann anfangs etwas abschreckend wirken. Es braucht schon fast ein geheimes Ritual, um diese Anwendung zu verlassen, wenn man versehentlich hineingerät. Hier erklären wir, wie man vi oder vim unter Linux, macOS oder anderen Unix-basierten Systemen beendet.

Die schnelle Lösung

Wenn Sie sich in vi oder vim befinden und den Editor verlassen müssen, egal ob mit oder ohne Speichern der Änderungen, gehen Sie folgendermaßen vor:

Drücken Sie zuerst mehrmals die Esc-Taste. Dadurch wird sichergestellt, dass vi sich im Befehlsmodus befindet und nicht im Einfügemodus.
Geben Sie anschließend :q! ein und drücken Sie die Eingabetaste. Dadurch wird vi angewiesen, den Editor zu verlassen, ohne Änderungen zu speichern. (Wenn Sie Ihre Änderungen speichern möchten, verwenden Sie stattdessen :wq).

Wenn Sie die Linux-Befehlszeile lernen möchten, gibt es noch viel mehr zu entdecken. Lesen Sie weiter, und wir zeigen Ihnen, wie vi funktioniert und warum die Befehle zum Beenden so ungewöhnlich sind. vi ist ein wichtiges, leistungsstarkes Werkzeug, und es lohnt sich, es zu beherrschen.

vi, der allgegenwärtige Editor

Da vi weit verbreitet ist, ist es sehr wahrscheinlich, dass Sie ihm irgendwann begegnen werden. Es kann sogar passieren, dass Sie sich versehentlich in vi wiederfinden. Vielleicht bitten Sie einen Freund, Ihnen bei der Fehlersuche an seinem Linux-Rechner zu helfen. Sie geben einen Befehl wie crontab -e ein, und plötzlich erscheint vi. Überraschung: Der Standardeditor für crontab ist auf vi eingestellt.

Oder vielleicht verwalten Sie ein System, in dem vi der einzige Editor ist, oder der einzige Editor, der über eine Remote-SSH-Sitzung funktioniert, und Sie müssen die .bashrc-Datei eines Benutzers bearbeiten.

Der Befehl zum Starten von vi und zum Öffnen einer Datei ist einfach. Geben Sie vi, ein Leerzeichen und dann den Dateinamen ein. Drücken Sie Enter. Das gestartete Programm kann vi oder vim sein, eine „verbesserte“ Version von vi. Das hängt von Ihrer Linux-Distribution ab – Ubuntu verwendet beispielsweise vim. Alle Anweisungen in diesem Artikel gelten gleichermaßen für vim.

vi .bashrc

Der auffälligste Unterschied zwischen vi und anderen Editoren ist, dass Sie nicht einfach losschreiben können, sobald Sie vi starten. Das liegt daran, dass vi ein modaler Editor ist. Die Bearbeitung erfolgt in einem Modus, dem Einfügemodus, und die Ausführung von Befehlen erfolgt im Befehlsmodus. vi startet im Befehlsmodus.

Wenn Ihnen das Konzept von Einfügemodus und Befehlsmodus fremd ist, kann das sehr verwirrend sein. Viele der Befehle, die Sie im Befehlsmodus ausführen können, wirken sich auf die Datei aus, die Sie bearbeiten. Wenn Sie sich im Befehlsmodus befinden, aber versuchen, Text in Ihre Datei einzugeben, wird das nicht gut enden. Einige Ihrer Tastenanschläge werden als Befehle interpretiert. Diese Befehle können Zeilen löschen oder teilen, den Cursor verschieben oder Text löschen.

Und egal was Sie eingeben, Sie können den Editor nicht verlassen oder beenden. Währenddessen wird Ihre Datei wahrscheinlich verunstaltet und die scheinbar willkürlichen Pieptöne werden Sie in den Wahnsinn treiben.

Befehlsmodus und Einfügemodus

Sie müssen vi in den richtigen Modus schalten, um das zu erreichen, was Sie möchten.

Der Befehlsmodus ist der Standardmodus, wenn vi gestartet wird. Wenn Sie es nicht besser wissen, versuchen Sie zu tippen. Wenn Sie versehentlich die Taste „i“ oder eine der anderen 10 Tasten drücken, die den Einfügemodus aktivieren (a, A, c, C, I, o, O, R, s und S), werden Sie plötzlich sehen, was Sie tippen. Sie befinden sich jetzt im Einfügemodus.

Das mag sich wie ein Fortschritt anfühlen, bis Sie eine der Pfeiltasten drücken. Wenn Sie das tun, erscheinen A, B, C oder D als einzelner Buchstabe in einer ansonsten leeren neuen Zeile. Am Anfang der Datei.

Keine Sorge, wir helfen Ihnen. Das ist überraschend einfach, wenn man weiß wie. Merken Sie sich diese beiden Tastenkombinationen: Esc bringt Sie in den Befehlsmodus, und „i“ bringt Sie in den Einfügemodus.

Sie müssen sich im Befehlsmodus befinden und den richtigen Befehl eingeben, um den Editor zu verlassen.

Vom Befehlsmodus zur Sicherheit

Um in den Befehlsmodus zu gelangen, drücken Sie die Esc-Taste. Es wird nichts Sichtbares passieren. Drücken Sie sie noch ein paar Mal. Wenn Sie beim Drücken der Escape-Taste einen Piepton hören, befinden Sie sich im Befehlsmodus. Der Piepton signalisiert Ihnen: „Hören Sie auf, Esc zu drücken, Sie sind bereits im Befehlsmodus.“ Wenn Sie beim Drücken von Esc einen Piepton hören, ist alles in Ordnung.

Geben Sie einen Doppelpunkt, den Buchstaben „q“ und ein Ausrufezeichen ohne Leerzeichen ein. Diese drei Zeichen sollten ganz links in der unteren Zeile des Terminals erscheinen. Wenn das nicht der Fall ist, drücken Sie Esc, bis Sie einen Piepton hören, und versuchen Sie es erneut. Drücken Sie die Eingabetaste, wenn Sie sie sehen können:

:q!

In diesem Befehl ist q die Abkürzung für quit (beenden). Das Ausrufezeichen verstärkt den Befehl, als würden Sie vi „Beenden!“ zurufen. Das hilft vielleicht, sich etwas besser zu fühlen.

Das Ausrufezeichen weist vi auch an, keine der Änderungen zu speichern, die Sie möglicherweise an der Datei vorgenommen haben. Wenn Sie in vi herumgestolpert sind und nicht wissen, was Sie tun, möchten Sie wahrscheinlich nicht das Chaos retten, das Sie angerichtet haben.

Sobald Sie wieder in der Befehlszeile sind, sollten Sie noch einmal überprüfen, ob die Datei nicht geändert wurde. Das können Sie mit dem folgenden Befehl tun:

cat .bashrc | less

Wenn beim Beenden von vi die Meldung „Kein Schreiben seit letzter Änderung“ angezeigt wird, haben Sie das Ausrufezeichen im Befehl vergessen. Um zu verhindern, dass Sie das Programm beenden und alle Änderungen, die Sie behalten möchten, verloren gehen, bietet Ihnen vi die Möglichkeit, sie zu speichern. Geben Sie einfach den Befehl :q! mit dem Ausrufezeichen ein, um vi zu verlassen und alle Änderungen zu verwerfen.

Wenn Sie sicher sind, speichern Sie Ihre Änderungen

Wenn Sie mit den Änderungen zufrieden sind, die Sie an Ihrer Datei vorgenommen haben, können Sie die Änderungen mit dem Befehl :wq (write and quit) beenden und speichern. Vergewissern Sie sich, dass Sie wirklich davon überzeugt sind, dass Ihre Bildschirmbearbeitungen in die Datei geschrieben werden sollen, bevor Sie fortfahren.

Geben Sie einen Doppelpunkt, den Buchstaben w (write) und den Buchstaben q (quit) ein. Drücken Sie die Eingabetaste, wenn Sie sie unten links im Terminal sehen:

:wq

Die Lernkurve lohnt sich

Die Verwendung von vi ist ein bisschen wie das Spielen eines Klaviers. Man kann sich nicht einfach hinsetzen und loslegen; man muss ein wenig üben. Sich zum ersten Mal damit auseinanderzusetzen, wenn die Zeit drängt und man etwas bearbeiten muss, ist keine gute Idee. Es ist, als würde man sich zum ersten Mal an ein Klavier setzen, während sich der Vorhang für das eigene Debütkonzert öffnet.

Ein großer Teil der Leistung von vi beruht auf den vielen Tastenkombinationen, die jeweils eine bestimmte Bearbeitungsaufgabe ausführen. Das ist großartig, aber man kann erst davon profitieren, wenn man sie auswendig gelernt und geübt hat, und sie Teil des Muskelgedächtnisses geworden sind.

Bis dahin, wenn Sie sich in vi wiederfinden und eine wichtige Datei bearbeiten, verwenden Sie einfach :q! und verlassen Sie den Editor elegant. Ihre wichtige Datei wird es Ihnen danken.