Textdateien mit dem vi-Editor unter Linux bearbeiten

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einleitung

In diesem Labor lernen Sie die grundlegenden Fähigkeiten, die für die Verwendung des Texteditors vi erforderlich sind, einem leistungsstarken und unverzichtbaren Werkzeug in jeder Linux-Umgebung. Sie beginnen mit dem Erstellen einer neuen Datei und dem Eingeben von Text im Einfügemodus (Insert Mode). Anschließend üben Sie die wesentlichen Befehle zum Speichern Ihrer Arbeit und zum Beenden des Editors, wie z. B. :w und :wq.

Aufbauend auf diesen Grundlagen erkunden Sie, wie Sie sich mit den Bewegungstasten innerhalb einer Datei bewegen und nach speziellem Text suchen. Sie lernen auch, wie Sie Bearbeitungen durchführen, z. B. ein Wort mit dw löschen, und wie Sie ohne Speichern Ihrer Änderungen mit :q! beenden. Zum Abschluss des Labors wird Ihnen gezeigt, wie Sie den interaktiven vimtutor starten, um weiter zu üben und Ihre Fähigkeiten weiterzuentwickeln.

Eine Datei erstellen und Text im Einfügemodus eingeben

In diesem Schritt lernen Sie, wie Sie den vi-Editor verwenden, um eine neue Textdatei zu erstellen und Text einzugeben. vi (und seine moderne Version vim) ist ein leistungsstarker und allgegenwärtiger Texteditor in Unix-ähnlichen Betriebssystemen. Er arbeitet in verschiedenen Modi, wobei die beiden grundlegendsten der Normalmodus (für Befehle) und der Einfügemodus (für die Texteingabe) sind.

Stellen Sie zunächst sicher, dass Sie sich im richtigen Arbeitsverzeichnis befinden. Alle Arbeiten für dieses Labor werden im Verzeichnis ~/project durchgeführt.

  1. Öffnen Sie ein Terminal. Die Eingabeaufforderung sollte anzeigen, dass Sie sich im Verzeichnis project befinden. Sie können den vollständigen Pfad mit dem Befehl pwd (print working directory) überprüfen.

    pwd

    Sie sollten die folgende Ausgabe sehen, die Ihren Standort bestätigt:

    /home/labex/project
    Terminal zeigt aktuelles Verzeichnis
  2. Starten Sie nun den vi-Editor und erstellen Sie eine neue Datei namens test.txt. Wenn Sie diesen Befehl ausführen, startet vi und übernimmt Ihr Terminalfenster.

    vi test.txt

    Ihr Terminal wird gelöscht und Sie sehen einen Bildschirm mit Tilden (~) auf der linken Seite. Diese zeigen leere Zeilen an. Am unteren Bildschirmrand sehen Sie den Dateinamen "test.txt" [New File]. Sie befinden sich derzeit im Normalmodus.

  3. Um Text einzugeben, müssen Sie in den Einfügemodus wechseln. Drücken Sie die Taste i auf Ihrer Tastatur.

    i

    Beachten Sie, dass am unteren Bildschirmrand -- INSERT -- erscheint. Dies bestätigt, dass Sie sich im Einfügemodus befinden und nun Text direkt in die Datei eingeben können.

  4. Geben Sie den folgenden Satz ein:

    Now is the time for all good men to come to the aid of their country.

    vi-Editor zeigt eingefügten Text im Einfügemodus

    Zu diesem Zeitpunkt existiert der von Ihnen eingegebene Text im Speicherpuffer des Editors, wurde aber noch nicht auf die Festplatte gespeichert. Im nächsten Schritt lernen Sie, wie Sie Ihre Arbeit speichern und den Editor beenden.

Datei speichern und beenden mit :w und :wq

In diesem Schritt lernen Sie, wie Sie Ihre Änderungen speichern und den vi-Editor beenden. Diese Aktionen werden mit Befehlen im Normalmodus ausgeführt. Da Sie sich aus dem vorherigen Schritt noch im Einfügemodus befinden, müssen Sie zuerst zum Normalmodus zurückkehren.

  1. Um vom Einfügemodus zurück in den Normalmodus zu wechseln, drücken Sie die Taste Esc.

    Esc

    Sie werden feststellen, dass die Anzeige -- INSERT -- am unteren Bildschirmrand verschwindet. Das bedeutet, dass Sie sich nun im Normalmodus befinden, in dem Tastatureingaben als Befehle und nicht als Texteingabe interpretiert werden.

  2. Speichern wir nun die Datei. Im Normalmodus werden Befehle, denen ein Doppelpunkt (:) vorangestellt ist, in einer Befehlszeile am unteren Bildschirmrand angezeigt. Um die Datei zu schreiben (speichern), verwenden Sie den Befehl :w.

    Geben Sie die folgende Sequenz ein und drücken Sie Enter:

    :w

    Nachdem Sie Enter gedrückt haben, schreibt vi den Inhalt des Puffers in die Datei test.txt. Sie sehen eine Bestätigungsnachricht am unteren Bildschirmrand, ähnlich dieser:

    "test.txt" [New] 1L, 79C written

    Diese Nachricht bestätigt, dass die Datei test.txt gespeichert wurde und 1 Zeile und 79 Zeichen enthält.

  3. Um vi schließlich zu beenden, können Sie den Befehl :q für "quit" (beenden) verwenden. Ein gebräuchlicherer Befehl ist :wq, der das Schreiben der Datei und das Beenden in einer einzigen Aktion kombiniert. Da Sie sich bereits im Normalmodus befinden, geben Sie Folgendes ein und drücken Sie Enter:

    :wq

    Dieser Befehl speichert alle endgültigen Änderungen und schließt dann den vi-Editor, wodurch Sie zur Shell-Eingabeaufforderung in Ihrem Terminal zurückkehren. Ihr Terminal sollte nun die gewohnte Eingabeaufforderung anzeigen, und die Datei test.txt ist in Ihrem Verzeichnis ~/project gespeichert.

In diesem Schritt üben Sie einige der leistungsstarken Navigations- und Suchbefehle von vi. Diese Befehle ermöglichen es Ihnen, den Cursor zu bewegen und Text effizient zu finden, ohne die Maus zu verwenden. Alle diese Operationen werden im Normalmodus ausgeführt.

  1. Öffnen Sie zunächst erneut die Datei test.txt. Geben Sie von Ihrer Shell-Eingabeaufforderung im Verzeichnis ~/project den folgenden Befehl ein:

    vi test.txt

    Der Editor wird geöffnet und zeigt den Inhalt der Datei an. Der Cursor befindet sich wahrscheinlich am Anfang der ersten Zeile.

  2. Um sicherzustellen, dass sich der Cursor ganz am Anfang der Datei befindet, können Sie den Befehl gg verwenden. Geben Sie im Normalmodus (drücken Sie Esc, wenn Sie unsicher sind) gg ein.

    gg

    Der Cursor springt sofort zum ersten Zeichen der ersten Zeile, das in unserer Datei 'N' ist.

  3. Die primäre Methode zur Cursorbewegung in vi sind die Tasten h, j, k und l. Dies ist eine Kernkompetenz für jeden vi-Benutzer.

    • h bewegt den Cursor ein Zeichen nach links.
    • l bewegt den Cursor ein Zeichen nach rechts.
    • j bewegt den Cursor eine Zeile nach unten.
    • k bewegt den Cursor eine Zeile nach oben.

    Versuchen Sie, diese Tasten zu drücken, um den Cursor durch den Satz zu bewegen. Diese Navigationsmethode funktioniert in jeder Terminalumgebung.

  4. Suchen wir nun nach Text. Der Befehl / wird verwendet, um vorwärts in der Datei zu suchen. Um nach allen Vorkommen des Buchstabens 'a' zu suchen, gehen Sie wie folgt vor:
    a. Stellen Sie sicher, dass Sie sich im Normalmodus befinden (drücken Sie Esc).
    b. Geben Sie / gefolgt von dem Zeichen ein, nach dem Sie suchen möchten, in diesem Fall a. Drücken Sie dann Enter.

    /a

    Der Cursor springt zum ersten 'a', das er nach Ihrer aktuellen Cursorposition findet.

    c. Um die nächste Instanz desselben Suchbegriffs zu finden, drücken Sie einfach die Taste n (für "next" - nächster).

    n

    Drücken Sie n mehrmals, um alle 'a's in der Datei zu durchlaufen.

Sie haben nun grundlegende Navigation und Suche geübt. Im nächsten Schritt lernen Sie, wie Sie Text löschen.

Ein Wort mit dw löschen und ohne Speichern mit :q! beenden

In diesem Schritt lernen Sie, wie Sie Text löschen und wie Sie vi beenden, ohne Ihre Änderungen zu speichern. Dies ist eine entscheidende Fähigkeit, wenn Sie einen Fehler gemacht haben und zur letzten gespeicherten Version der Datei zurückkehren möchten. Sie sollten vi noch mit der Datei test.txt aus dem vorherigen Schritt geöffnet haben.

  1. Bewegen Sie zunächst den Cursor zu dem Wort, das wir löschen möchten. Stellen Sie sicher, dass Sie sich im Normalmodus befinden (drücken Sie Esc, wenn Sie unsicher sind). Verwenden Sie die Tasten h und l, um den Cursor zu bewegen, bis er auf dem ersten Buchstaben des Wortes time steht.

  2. Wenn der Cursor auf dem t von time steht, geben Sie den Befehl dw ein. Dieser Befehl steht für "delete word" (Wort löschen).

    dw

    Sie werden sehen, wie das Wort time und das folgende Leerzeichen vom Bildschirm verschwinden. Der Satz sieht nun falsch aus, was perfekt für unsere nächste Aktion ist.

  3. Sie haben die Datei nun im Puffer des Editors geändert. Nehmen wir an, diese Löschung war ein Fehler. Anstatt diese falsche Version zu speichern, beenden Sie den Editor und verwerfen die Änderung. Der Befehl dafür ist :q!. Das q steht für "quit" (beenden) und das ! erzwingt die Aktion und ignoriert alle ungespeicherten Änderungen.

    a. Stellen Sie sicher, dass Sie sich im Normalmodus befinden (drücken Sie Esc).
    b. Geben Sie den folgenden Befehl ein und drücken Sie Enter:

    :q!

    Dieser Befehl beendet den vi-Editor sofort und kehrt zur Shell-Eingabeaufforderung zurück. Da Sie :q! verwendet haben, wurde das Löschen des Wortes time nicht in der Datei test.txt gespeichert. Wenn Sie die Datei erneut öffnen würden, wäre das Wort time immer noch vorhanden.

Den interaktiven vimtutor für weiteres Üben starten

In diesem Schritt entdecken Sie vimtutor, ein interaktives Tutorial, das Ihnen vi/vim-Fähigkeiten auf praktische Weise vermitteln soll. Dieses Lab hat die absoluten Grundlagen abgedeckt, aber vimtutor bietet einen umfassenden, selbstgesteuerten Kurs, der für alle neuen Benutzer sehr empfehlenswert ist.

  1. Sie sollten sich an der Shell-Eingabeaufforderung im Verzeichnis ~/project befinden. Um das Tutorial zu starten, geben Sie einfach den Befehl vimtutor ein und drücken Sie Enter.

    vimtutor
  2. Dieser Befehl öffnet vi mit einer speziellen Tutorial-Datei. Die Datei selbst enthält alle Anweisungen. Sie lesen den Text und üben dann die im Tutorial beschriebenen Befehle direkt in der Tutorial-Datei. Dies ist eine sichere und effektive Lernmethode, da Sie an einer temporären Kopie der Datei üben.

    Das Tutorial ist in Lektionen unterteilt und die geschätzte Dauer beträgt etwa 25-30 Minuten. Sie können es in Ihrem eigenen Tempo durcharbeiten.

  3. Wenn Sie mit dem Tutorial fertig sind (oder es jederzeit verlassen möchten), können Sie es genauso beenden, wie Sie jede vi-Sitzung beenden würden. Da Sie keine Änderungen an der Tutorial-Datei speichern müssen, ist der beste Weg, sie mit dem Befehl :q! zu beenden.

    a. Drücken Sie Esc, um sicherzustellen, dass Sie sich im Normalmodus befinden.
    b. Geben Sie :q! ein und drücken Sie Enter.

    :q!

Damit ist der praktische Teil dieses Labs abgeschlossen. Durch das Durchlaufen dieser Schritte haben Sie die grundlegenden Fähigkeiten für das Erstellen, Bearbeiten, Speichern und Navigieren von Dateien mit dem vi-Editor erlernt.

Zusammenfassung

In diesem Lab haben Sie die grundlegenden Operationen des vi-Texteditors unter Linux gelernt. Sie begannen mit der Erstellung einer neuen Datei und dem Verständnis des Kernkonzepts der verschiedenen Modi von vi. Sie übten den Wechsel vom Standard-Normalmodus in den Einfügemodus (Insert Mode) mit der Taste i, um Text einzugeben. Nach der Eingabe lernten Sie, wie Sie mit :w zum Normalmodus zurückkehren, um die Datei zu speichern, und mit :wq die Datei speichern und den Editor beenden.

Sie übten auch grundlegende Navigations- und Bearbeitungsbefehle im Normalmodus. Dazu gehörte das Bewegen des Cursors mit den Tasten h, j, k und l, das Springen zum Anfang der Datei mit gg und das Suchen nach speziellem Text mit dem Befehl /. Darüber hinaus lernten Sie, wie Sie eine grundlegende Bearbeitung durchführen, indem Sie ein Wort mit dw löschen, und wie Sie den Editor verlassen, ohne Änderungen zu speichern, mit :q!. Das Lab endete damit, dass Sie auf den interaktiven vimtutor für weitere praktische Übungen verwiesen wurden.