Wie man Marker verwendet und Textauswahl in Vim durchführt

Bei der Verwendung von GUI-basierten Text-Quellcode-Editoren sind einige Funktionen gegeben, wie z.B. das Auswählen von Text. Ich meine, die meisten von uns werden das nicht einmal mehr als ein Merkmal betrachten. Aber das ist bei Kommandozeilen-Editoren wie Vim nicht der Fall. Speziell für Vim, wenn Sie nur die Tastatur verwenden, müssen Sie bestimmte Befehle lernen, um den Text so auszuwählen, wie Sie es wünschen. In diesem Tutorial werden wir diese Funktion sowie die Markierungsfunktion von Vim im Detail besprechen.

Textauswahloptionen in Vim

Angenommen, Sie haben Grundkenntnisse über den Vim-Editor (kein Problem, gehen Sie einfach hier hin), dann wissen Sie, dass Sie mit dem Befehl ‚d‘ eine Zeile schneiden/löschen können. Aber was ist, wenn Sie, sagen wir, 3 Linien schneiden wollen? Deine Antwort könnte lauten: Gut, aber was ist, wenn die Anforderung darin besteht, einen ganzen Absatz (oder, sagen wir, ein paar davon) zu schneiden? Ist es eine praktische Lösung, zuerst die Anzahl der Zeilen manuell zu zählen und dann den Befehl’d‘ auszuführen (auch wenn Sie ‚[n]dd‘ verwenden)?

Nein, ist es nicht. Eine bessere Lösung wäre es in diesem Fall, die Zeilen auszuwählen, die Sie schneiden/löschen möchten, und dann den Befehl’d‘ nur einmal auszuführen. Hier ist ein Beispiel:

Angenommen, ich möchte den kompletten ersten Absatz des Abschnitts EINFÜHRUNG, der im folgenden Screenshot gezeigt wird, ausschneiden/löschen:

In VIM bearbeiteter Text

Was ich also tun werde, ist, den Cursor an den Anfang der ersten Zeile zu bringen und (stellen Sie sicher, dass ich nicht im Einfügemodus bin) den Befehl’V‘ (Shift+v) einzugeben. Dies führt dazu, dass die erste Zeile ausgewählt wird und Vim den Modus Visual Line aktiviert.

Wählen Sie eine Leitung mit VIM aus.

Nun muss ich nur noch mit der Pfeiltaste nach unten den ganzen Absatz auswählen.

Mehrere Zeilen mit Vim auswählen

Das ist es also, was wir wollten, oder? Jetzt drücken Sie einfach’d‘ und der ausgewählte Absatz wird abgeschnitten/gelöscht. Natürlich können Sie neben Ausschneiden/Löschen auch jede andere Option für den ausgewählten Text ausführen.

Damit kommen wir zu einem weiteren wichtigen Aspekt: Nicht jedes Mal, wenn wir die komplette(n) Linie(n) löschen müssen; was tun in diesen Fällen? Das heißt, die Lösung, die wir gerade besprochen haben, funktioniert nur, wenn Sie den Betrieb auf der/den kompletten Linie(n) durchführen wollen. Was wäre, wenn die Anforderung darin besteht, die ersten drei Sätze in einem Absatz zu streichen?

Nun, es gibt auch dafür einen Befehl – verwenden Sie einfach ‚v‘ anstelle von ‚V‘ (natürlich ohne einfache Anführungszeichen). Nachfolgend ein Beispiel, in dem ich ‚v‘ verwendet und dann die ersten drei Sätze im Absatz ausgewählt habe:

Wählen Sie die ersten drei Sätze in Vim aus.

Weiter geht es, manchmal bestehen die Daten, mit denen Sie es zu tun haben, aus separaten Spalten, und die Anforderung kann sein, eine bestimmte Spalte auszuwählen. Betrachten Sie beispielsweise den folgenden Screenshot:

Spalten in Vom

Angenommen, die Anforderung besteht darin, nur den Namen der Länder auszuwählen, was die zweite Spalte des Textes bedeutet. Was Sie in diesem Fall also tun können, ist, den Cursor unter das erste Element der betreffenden Spalte zu stellen und einmal Strg+v zu drücken. Wählen Sie nun mit der Pfeiltaste nach unten den ersten Buchstaben des jeweiligen Ländernamens aus:

Wählen Sie das erste Zeichen einer Spalte aus.

Und wählen Sie dann mit der rechten Pfeiltaste die komplette Spalte oder den ganzen Namen aus.

Eine ganze Spalte in Vim auswählen

Tipp: Falls Sie einen Textblock aus irgendeinem Grund abgewählt haben und ihn nun erneut auswählen möchten, drücken Sie einfach ‚gv‘ im Befehlsmodus.

Verwendung von Markierungen

Manchmal, während Sie an einer großen Datei (z.B. einer Quellcode-Datei oder einem Shell-Skript) arbeiten, möchten Sie vielleicht an einen bestimmten Ort wechseln und dann zu der Zeile zurückkehren, in der Sie sich ursprünglich befanden. Das ist kein Problem, wenn die fraglichen Linien nicht weit weg sind, oder Sie dies gelegentlich tun müssen.

Aber was ist es umgekehrt – Sie müssen häufig zwischen Ihrem jetzigen Standort und verschiedenen weit entfernten Zeilen in der Datei wechseln. Nun, die Lösung in diesem Fall ist die Verwendung von Marken. Markieren Sie einfach Ihren aktuellen Standort und kehren Sie dann von überall in der Datei zu diesem Standort zurück, indem Sie einfach den Namen der Markierung angeben.

Um eine Zeile in vim zu markieren, verwenden Sie den Befehl m, gefolgt von einem Alphabet, das den Namen der Markierung darstellt (verfügbare Optionen sind a-z in Kleinbuchstaben). Zum Beispiel, Ma. Um nun auf die Markierung a zurückzukommen, verwenden Sie den Befehl „a“ (einschließlich einfacher Anführungszeichen).

Tipp: Sie können Apostroph (') oder Backtick (`) depending on whether you want to jump to the beginning of the marked line, or specifically to die Zeile und Spalte der Markierung verwenden.

Es kann noch viele andere nützliche Anwendungen von Vim-Markern geben. Sie können beispielsweise eine Markierung auf eine Zeile setzen, dann zu einer anderen Zeile gehen und den folgenden Befehl ausführen:

d'[mark-name]

um alles zwischen Ihrer aktuellen Position und der markierten Linie zu löschen.

Weiter geht’s, hier ist ein wichtiges Tid-Bid aus der offiziellen Dokumentation des Vim:

Each file has a set of marks identified by lowercase letters (a-z). In addition there is a global set of marks identified by uppercase letters (A-Z) that identify a position within a particular file. For example, you may be editing ten files. Each file could have mark a, but only one file can have mark A.

Während wir also die grundlegende Verwendung von Kleinbuchstaben als Vim-Marken diskutiert haben, wie und wo die Großbuchstaben nützlich sind. Nun, der folgende Auszug macht es deutlich:

Because of their limitations, uppercase marks may at first glance seem less versatile than their lowercase counterpart, but this feature allows them to be used as a quick sort of "file bookmark." For example, open your .vimrc, press mV, and close Vim. The next time you want to edit your .vimrc, just press 'V to open it.

Und schließlich, um eine Markierung zu löschen, verwenden Sie den Befehl’delmarks‘. Zum Beispiel:

:delmarks a

Der vorgenannte Befehl löscht die Markierung a aus der Datei. Wenn Sie natürlich eine Zeile mit einer Markierung löschen, wird diese Markierung auch automatisch gelöscht. Weitere Informationen zu den Markierungen finden Sie in der Vim-Dokumentation.

Fazit

Wenn Sie Vim als primären Editor verwenden, werden Funktionen wie die in diesem Tutorial beschriebenen zu nützlichen Werkzeugen, die Ihnen viel Zeit sparen. Wie Sie sehen, gibt es nicht viel von einer Lernkurve, die mit der Auswahl und den hier erläuterten Markierungsfunktionen verbunden ist – alles, was Sie benötigen, ist ein wenig Übung.

Für die vollständige Abdeckung von Vim-bezogenen Artikeln über HowtoForge besuchen Sie bitte hier.

Das könnte dich auch interessieren …