Erste Schritte mit Vim für Linux

Stellen Sie sich vor, Sie stecken bis über beide Ohren in Ihrem Linux-System und versuchen verzweifelt, eine Datei zu bearbeiten. Jeder Versuch fühlt sich an wie das Entschlüsseln eines antiken Codes. Wenn Sie sich beim Klicken immer mehr verloren fühlen, warum wenden Sie sich nicht an Vim für Linux?

In diesem Tutorial werden Sie die Geheimnisse von Vim, einem weit verbreiteten Texteditor, enthüllen, der Sie vom Linux-Wanderer in einen Command-Line-Virtuosen verwandelt.

Greifen Sie nach Ihrem metaphorischen Schwert (auch bekannt als Ihre Tastatur) und begeben Sie sich in die Welt von Vim!

Voraussetzungen

Hier sind einige Voraussetzungen, um die Bühne für das Meistern von Vim auf Ihrem Linux-System vorzubereiten:

  • A Linux OS – This tutorial uses an Ubuntu 22.04 LTS.

Erstellen und Bearbeiten von Dateien mit Vim für Linux

Vim arbeitet in verschiedenen Modi, die jeweils einzigartige Bearbeitungsmöglichkeiten bieten. Bevor Sie jedoch zu diesen Modi wechseln, müssen Sie zunächst lernen, wie Sie Dateien mit Vim unter Linux erstellen und bearbeiten können.

Um eine Datei mit Vim zu erstellen und zu bearbeiten, befolgen Sie diese Schritte:

1. Öffnen Sie ein Terminal und führen Sie den folgenden vim-Befehl aus, um eine Datei namens sshd_config (beliebig) mit Vim zu erstellen. Dieser Befehl erstellt automatisch die Datei, wenn sie nicht vorhanden ist. Andernfalls wird die vorhandene Datei in Vim geöffnet.

Die Benutzeroberfläche von Vim sieht wie unten aus, wenn Sie eine neue Datei erstellt haben, was bedeutet, dass Vim sich derzeit im Befehlsmodus befindet. Der Befehlsmodus ist einer der Hauptmodi, in denen Sie mit dem Text im Vim-Editor interagieren.

Creating a new file via Vim for Linux

2. Kopieren Sie als nächstes den unten stehenden Text in die Zwischenablage, der Beispieleinstellungen für den SSH-Server enthält, die rein zu Demonstrationszwecken dienen und keine tatsächlichen Serverkonfigurationen widerspiegeln.

3. Drücken Sie in Vim i, um in den Einfügemodus zu wechseln. Der Einfügemodus ist ebenfalls einer der Hauptmodi in Vim, der es Ihnen ermöglicht, den Inhalt Ihres Dokuments zu tippen und zu ändern.

Sobald Sie den Einfügemodus betreten, wird in der Statuszeile — INSERT — wie im Folgenden angezeigt.

Entering the insert mode on Vim

4. Drücken Sie nun Strg+Shift+V oder Shift+Einfügen, um den Text, den Sie in Schritt zwei kopiert haben, in den Vim-Editor einzufügen, und drücken Sie Esc, um den Einfügemodus zu verlassen (wechselt in den Befehlsmodus).

Beachten Sie, dass der Status — INSERT — verschwindet, was bedeutet, dass Sie sich wieder im Befehlsmodus befinden.

Inserting the copied text into Vim

5. Geben Sie zuletzt den :w-Befehl ein und drücken Sie Enter, um die Änderungen an der Datei zu speichern, ohne den Editor zu schließen.

Bei Bedarf können Sie die anderen unten aufgeführten Befehle ausführen:

Command Details
:q! Quit the editor without saving the changes.
:w! Write the current file changes forcefully.
:wq Save the changes and quit the editor (or :wq! to save and quit forcefully).
e! Revert to the last saved version of the file.
Saving the changes

Die Statuszeile zeigt die Datenmenge an, die in die Datei geschrieben wurde, in diesem Fall 23 Zeilen (23L) und 624 Bytes (624B).

Verifying the changes are saved

Texte in Vim navigieren

Nachdem Sie die Kunst des Erstellens und Bearbeitens von Dateien mit Vim beherrscht haben, werden Sie eine entscheidende Fähigkeit kennenlernen, die Ihre Textbearbeitungsfähigkeiten verbessert – das Navigieren in Vim. Eine effektive Navigation ist der Schlüssel zur Entfaltung des Potenzials von Vim, ähnlich wie das Erkunden einer weiten Landschaft.

Um zu sehen, wie man in Vim durch Texte navigiert, gehen Sie wie folgt vor:

1. Geben Sie nun den Befehl :set nu ein und drücken Sie Enter, um die Zeilennummerierung in Vim zu aktivieren. Die Zeilennummerierung ist eine wichtige Funktion des Editors beim Umgang mit Code oder großen Dokumenten.

Wenn erfolgreich, sehen Sie die Zeilennummern im Editor, wie unten gezeigt.

Setting the line numbering

2. Wechseln Sie als nächstes in den Befehlsmodus (Esc) und drücken Sie den Befehl gg, um zum Anfang der Datei zu springen.

Jumping to the beginning of the file

3. Drücken Sie als nächstes einen der folgenden Befehle, bis Sie zum Anfang des MaxSessions-Parameters gelangen, und drücken Sie $, um den Cursor ans Ende der Zeile zu bewegen.

Command Details
h Move the cursor to the left or the previous character.
j Move the cursor one line down.
k Move the cursor one line up.
l Move the cursor to the right or the next character.
Placing the cursor at the end of the MaxSessions line

4. Ersetzen Sie nun einen Text durch den folgenden:

  • Drücken Sie i, um in den Einfügemodus zu wechseln.
  • Löschen Sie den Wert (Rücktaste oder Entfernen), der 10 ist, und ersetzen Sie ihn durch 25.
  • Wechseln Sie in den Befehlsmodus (Esc) und speichern Sie die Änderungen (:w).
Editing a text in Vim

Texte an bestimmten Stellen einfügen

Vim bietet eine Reihe von Befehlen, mit denen Sie genau steuern können, wo und wie Sie neue Texte einfügen möchten (genau dort, wo Sie sie benötigen). Diese Funktion funktioniert sowohl, wenn Sie am Anfang einer Zeile, direkt nach der aktuellen Cursorposition oder am Ende einer Zeile einfügen möchten.

Um zu sehen, wie das Einfügen von Texten an bestimmten Stellen funktioniert, führen Sie bitte folgende Schritte aus:

1. Drücken Sie I (Shift+I), während sich der Cursor am Ende der Zeile befindet, um den Einfügemodus zu aktivieren und gleichzeitig den Cursor an den Anfang der Zeile zu setzen.

Inserting at the beginning of the line

2. Wechseln Sie in den Befehlsmodus (Esc), bewegen Sie den Cursor zu einem anderen Zeichen in der aktuellen Textzeile (z. B. zum Anfang) und drücken Sie den Befehl a.

Dieser Befehl wechselt Vim in den Einfügemodus und platziert den Cursor an der nächsten Position zum vorherigen Zeichen. Dieses Verhalten eignet sich gut, um schnell Text in der Mitte einer Zeile hinzuzufügen, ohne den vorhandenen Text zu stören.

Inserting at the current cursor point

3. Fügen Sie ‚y‘ ein, um den Schlüssel MaxSession als MyaxSession zu buchstabieren, wie unten gezeigt, und wechseln Sie in den Befehlsmodus (Esc).

Sie werden feststellen, dass das neue Zeichen ‚y‘ unmittelbar nach dem ersten erscheint.

Inserting a character within a line of text

4. Ändern Sie nun die Textzeile wie folgt:

  • Drücken Sie Shift+A, um den Befehl A auszuführen, mit dem Vim in den Einfügemodus wechselt und den Cursor ans Ende der Zeile setzt. Dieses Verhalten eignet sich ideal, um schnell Inhalte wie ein Semikolon hinzuzufügen oder einen Satz zu beenden.
  • Fügen Sie am Ende der Zeile 0 hinzu, sodass der Wert 250 wird.
  • Zurück zum Befehlsmodus (`Esc`) und die Änderungen speichern (`:w`).
Appending text to the end of the line

Öffnen neuer Zeilen

Jetzt, da Sie gelernt haben, Text in Ihren Vim-Dateien strategisch zu platzieren, ist es an der Zeit, eine Fähigkeit zu erkunden, die Ihren Inhalt gut strukturiert und organisiert hält. Die Fähigkeit, in Vim neue Zeilen zu öffnen, ist Ihr Ticket zu einem lesbareren und ästhetisch ansprechenderen Text.

Um neue Zeilen zu öffnen, oben oder unten, führen Sie die folgenden Schritte aus:

1. Wechseln Sie in den Befehlsmodus und drücken Sie `o`, um eine neue Zeile unter der aktuellen Textzeile zu öffnen, und fügen Sie den folgenden Kommentar zu den MyaxSessions hinzu.

# Hinweis: maxSessions je nach Serverlast anpassen
Adding a new line below the current line of text

2. Wechseln Sie in den Befehlsmodus (`Esc`), positionieren Sie den Cursor auf einer anderen Textzeile und drücken Sie `O` (Shift+O), um eine neue Zeile über der aktuellen Textzeile hinzuzufügen.

Adding a new line above the current line of text

3. Fügen Sie nun den folgenden Befehl in die Datei ein und speichern Sie die Änderungen (`:w`).

# Seien Sie vorsichtig mit den Protokollebenen, um Leistungsprobleme zu vermeiden
Populating the new line of text

Löschen von Wörtern und Textzeilen

Vim bietet effiziente Befehle zum Löschen und Ersetzen von Texten jenseits der grundlegenden Entfernen- oder Rücktaste. Diese Befehle sind im Befehlsmodus zugänglich, der es Ihnen ermöglicht, schnell Änderungen und Korrekturen vorzunehmen, indem Sie Zeichen, Wörter oder ganze Zeilen löschen oder ersetzen.

Um Texte in Vim für Linux zu löschen und zu ersetzen, führen Sie folgendes aus:

1. Bewegen Sie den Cursor zum Parameter MyaxSessions, speziell zum Zeichen ‚y‚.

Placing the cursor at a specific character

2. Drücken Sie dann x, um das Zeichen unter dem Cursor sofort zu entfernen, das in diesem Fall ‚y‚ ist.

Der Parameter ist wieder im Originaltext als MaxSessions, wie unten gezeigt.

Deleting a character under the cursor

3. Bewegen Sie den Cursor zur Zeile PermitRootLogin no:.

Positioning the cursor

4. Drücken Sie nun "_dd, um die gesamte Textzeile unabhängig von der Cursorposition zu löschen.

Der "_-Teil im Befehl gibt das Black-Hole-Register an, das den gelöschten Text verwirft (er wird in keinem Register gespeichert).

Vim hat seinen eigenen Satz von Registern, in denen Sie Texte speichern können, und das Nichtangeben des Black-Hole-Registers bewirkt, dass der Befehl den Text ausschneidet, anstatt ihn zu löschen.

Bei erfolgreichem Abschluss ist die Zeile PermitRootLogin no: verschwunden.

Deleting an entire line of text

5. Im Befehlsmodus platzieren Sie den Cursor am Anfang des Wortes Specifies in der Zeile # Specifies whether root can log in using ssh.

Placing the cursor at the beginning of a word

6. Führen Sie schließlich den Befehl "_dw aus, der das Wort Specifies entfernt, wie unten gezeigt:

Deleting a word

Optional können Sie sich für zusätzliche Löschoperationen mit den folgenden Befehlen entscheiden:

Command Details
"_d$ Delete texts from the cursor position to the end of the line.
"_D Deletes from the cursor position to the end of the line.
"_d^ Deletes from the cursor position to the first non-whitespace character of the line
"_dgg Deletes from the cursor position to the beginning of the file.
"_dG Deletes from the cursor position to the end of the file.

Ersetzen von Zeichen und Textzeilen

Von strategischen Löschungen in Vim wenden Sie sich der Kehrseite der Medaille zu – dem Ersetzen von Zeichen und Zeilen Text. Das Ersetzen ist der Pinselstrich, der es Ihnen ermöglicht, Ihren Text präzise zu verfeinern und neu zu definieren. Die gute Nachricht ist, dass Vim es Ihnen ermöglicht, einmalige Zeichenersetzungen oder ganze Textzeilen durchzuführen.

Um Zeichen und Zeilen Text zu ersetzen, fahren Sie mit diesen Aufgaben fort:

1. Positionieren Sie Ihren Cursor auf der Zeile AuthorizedKeysFile .ssh/authorized_keys, speziell auf dem Zeichen ‘z’ in authorized, wie unten dargestellt:

Positioning the cursor

2. Sobald positioniert, drücken Sie r, was Vim mitteilt, dass Sie das Zeichen unter dem Cursor ersetzen möchten, und geben Sie das Zeichen ‘s’ ein. Der Befehl r ermöglicht es Ihnen, ein Zeichen zu ersetzen, ohne zuerst in den Einfügemodus (i) zu wechseln.

Beachten Sie, dass das Zeichen ‘z’ in authorized durch das Zeichen ‘s’ ersetzt wurde, wodurch das Wort zu authorised wird.

Replacing a character within a line of text

3. Platzieren Sie anschließend Ihren Cursor auf dem Zeichen ’z‘ in AuthorizeKeysFile.

Placing the cursor on another character

4. Drücken Sie R (Shift+R), um in den Ersetzungsmodus zu gelangen, geben Sie ‘s’ ein, um das Zeichen zu ersetzen, verlassen Sie jedoch noch nicht den Ersetzungsmodus.

Im Gegensatz zum Befehl r, der es Ihnen nur ermöglicht, ein Zeichen zu ersetzen, erlaubt Ihnen der Befehl R, vorhandene Texte zu überschreiben, während Sie kontinuierlich eingeben.

Entering replace mode

5. Letztendlich kopieren Sie den folgenden Text in die Zwischenablage, bewegen den Cursor an den Anfang der Datei und fügen den kopierten Text ein (Strg+Shift+V oder Umschalt+Einfügen).

Da Sie sich immer noch im Ersetzungsmodus befinden, wird durch das Einfügen des Textes die erste Zeile in der Datei ersetzt.

Overwriting an entire line of text via the replace mode

Texte innerhalb einer Datei suchen

Beim Wiederholen oder Rückgängigmachen von Aktionen ist die Fähigkeit, Texte innerhalb einer Datei zu suchen, nützlich. Vim ermöglicht es Ihnen, nach bestimmten Wörtern, Phrasen oder Mustern in Ihrer Datei zu suchen.

Stellen Sie sich den enormen Produktivitätsschub vor, wenn Sie spezifische Textabschnitte schnell lokalisieren und manipulieren können, ohne ziellos zu scrollen.

Um nach Texten innerhalb einer Datei zu suchen, befolgen Sie diese Schritte:

1. Bewegen Sie Ihren Cursor an den Anfang der Datei (gg Befehl), drücken Sie / (Schrägstrich) um den Suchmodus zu starten, geben Sie den Suchbegriff log ein und drücken Sie Enter.

Dieser Befehl sucht nach dem von Ihnen angegebenen Begriff (log) und bewegt den Cursor zum nächsten Vorkommen des Begriffs.

Searching for the term “log”

2. Drücken Sie anschließend n, um zum nächsten Vorkommen des Begriffs zu gelangen.

Moving to the next occurrence of the term “log”

3. Drücken Sie nun N (Umschalt+N), um zum vorherigen Vorkommen zurückzukehren.

Moving back to the previous occurrence of the term “log”

Zusätzlich bietet Vim weitere Suchverknüpfungen wie folgende für mehr Suchflexibilität:

Command Details
? Initiates a reverse search of a term.
* Performs a forward search for the word under the cursor. Continue pressing * to cycle through further occurrences of the word until it loops back to the first instance.
# Performs a backward search for the word under the cursor. Continuously pressing # works similarly to the * command but cycles until it loops back to the last instance.

Kombinieren der Suche mit anderen Befehlen auf Vim

Während Sie die komplexen Landschaften von Vim durchqueren, warum nicht eine weitere Ebene zu Ihrer Textbearbeitungsbeherrschung hinzufügen – die Kombination von Suche mit anderen Befehlen?

Vim ermöglicht es Ihnen, Aktionen von der Ersetzung bestimmter Vorkommen bis zum Löschen von Zeilen, die einem Muster entsprechen, durchzuführen.

Um die Synergie zwischen Suche und Aktion in Vim zu erleben, führen Sie folgendes aus:

1. Befinden Sie sich im Befehlsmodus, platzieren Sie den Cursor am Startpunkt, von dem aus Sie die Löschung beginnen möchten (d. h. das erste Vorkommen des Suchbegriffs log).

Positioning the cursor at the first occurrence of the term “log”

2. Geben Sie dann d/log ein und drücken Sie Enter, um alles von der aktuellen Cursorposition bis zum nächsten Vorkommen des Begriffs log zu löschen, wie unten gezeigt.

Deleting everything from the cursor up to the next occurrence of “log”

3. Machen Sie die vorherige Aktion rückgängig (u-Befehl) und platzieren Sie den Cursor am ersten Vorkommen des Suchbegriffs log.

Placing the cursor at the first instance of the search term “log”

4. Führen Sie nun den folgenden Befehl aus, um Texte in einem bestimmten Bereich zu suchen und zu ersetzen, wobei:

  • :. – Den Befehlsmodus (:) in der aktuellen Zeile (.) betritt.
  • ,$ – Den Bereich für die Ersetzung festlegt.
  • s/log/logs/g – Substitute all occurrences of the old word (log) with new (logs) globally (g) within the specified range.
Replacing all occurrences of the term “log” with “logs” within a specified rage

Auswahl von Texten im visuellen Modus in Vim

Neben der Verbindung der Kunst der Suche mit anderen Befehlen in Vim müssen Sie eine Funktion enthüllen, die Ihre Textbearbeitungserfahrung transformiert. Der visuelle Modus von Vim ermöglicht es Ihnen, Text interaktiver und visueller zu manipulieren. Der visuelle Modus bietet eine flexible und effiziente Methode zum Hervorheben und Arbeiten mit Teilen Ihres Textes.

Um Text auszuwählen und zu bearbeiten, können Sie wählen, einzelne Zeichen auszuwählen und zu bearbeiten oder Textblöcke auszuwählen und zu bearbeiten, wie folgt:

1. Bewegen Sie Ihren Cursor an den Anfang der Datei (gg-Befehl) und drücken Sie v, um den visuellen Modus zu aktivieren, wie unten gezeigt.

Entering visual mode

2. Drücken Sie $, um Ihren Cursor ans Ende der Zeile zu bewegen. Da Sie sich im visuellen Modus befinden, markiert der Befehl die Zeile Text.

Highlighting a line of text

3. Führen Sie nun eine Kopier- und Einfügeaktion wie folgt aus:

  • Drücken Sie y, um den markierten Text in das Register von Vim zu kopieren.
  • Drücken Sie G$, um den Cursor ans Ende der letzten Zeile in der Datei zu bewegen.
  • Drücken Sie p, um den kopierten Text einzufügen (speziell nach dem Cursor).
    Beachten Sie, dass der p-Befehl sich von den Tastenkombinationen zum Einfügen von Texten unterscheidet (Strg+Umschalt+V oder Umschalt+Einfügen). Wenn Sie den Text mit dem y-Befehl kopieren, wird der Text im Register von Vim gespeichert, und der p-Befehl fügt den Text aus dem Register ein.
Copying and pasting a line of text after the cursor
Copying and pasting a line of text at the cursor’s position

4. Rückgängig machen (u) Sie Ihre vorherige Aktion, bewegen Sie den Cursor an den Anfang der Datei (gg) und drücken Sie V (Strg+V), um in den visuellen Zeilenmodus zu gelangen.

Im Gegensatz zur Auswahl einer einzelnen Zeile im visuellen Modus ermöglicht der visuelle Zeilenmodus die Auswahl mehrerer Zeilen Text, was Sie im folgenden Schritt sehen werden.

Entering visual line mode

5. Verwenden Sie die Abwärtspfeiltaste, um die Zeichen vom Anfang der Datei bis zur Zeile Protokoll 2 auszuwählen.

Selecting multiple lines of text via visual line mode

6. Drücken Sie d, um die ausgewählten mehreren Zeilen Text auszuschneiden.

Cutting multiple lines of text

7. Schließlich fügen Sie den Text, den Sie in Schritt sechs ausgeschnitten haben, wie folgt ein:

  • Bewegen Sie sich zur letzten Zeile in der Datei (G) und erstellen Sie eine neue Zeile darunter (o).
  • Zurück zum Befehlsmodus (`Esc`) und füge den Text ein (`p`).
Pasting multiple lines of text

Schlussfolgerung

Herzlichen Glückwunsch! Sie haben sich durch die komplexen Welten von Vim für Linux navigiert und dabei einen Schatz an Textbearbeitungsweisheit freigeschaltet. Vom Erstellen und Bearbeiten von Dateien bis hin zum Meistern der Kunst des visuellen Modus haben Sie den Hut eines Vim-Virtuosen aufgesetzt.

Aber Ihre Abenteuer auf der Kommandozeile haben gerade erst begonnen. Warum erkunden Sie nicht erweiterte Funktionen wie Makros und Plug-ins , um Vim an Ihre Bedürfnisse anzupassen?

Nutzen Sie diese grundlegenden Fähigkeiten, um tiefere Aspekte von Vim zu erkunden, wie Dateiverwaltung , komplexe Suchmuster und Vim-Skripting zur Personalisierung .

Source:
https://adamtheautomator.com/vim-for-linux/