vim
ist einer der beliebtesten Dateieditoren unter Linux. Ein Teil der Popularität ist auf den Befehlszeilenmodus von vim zurückzuführen, der es Benutzern, insbesondere Softwareentwicklern und fortgeschrittenen Benutzern, ermöglicht, die Zeit für Dateiänderungsvorgänge zu optimieren.
In diesem Artikel erfahren Sie, wie Sie Text in suchen und ersetzen vim
Befehlszeilenmodus.
Öffnen wir zunächst eine Textdatei in vim:
vim test.txt
Vim arbeitet in verschiedenen Modi. Die zwei wichtigsten Modi sind der oben erwähnte Befehlsmodus und der zweite der Einfügemodus, der verwendet wird, um den Dateiinhalt zu ändern.
Wenn eine Datei geöffnet wird, arbeitet vim standardmäßig im Befehlsmodus. Sie können drücken ich
um in den Einfügemodus zu wechseln.
Im Befehlsmodus können Sie direkt mit der Eingabe von vim-Befehlen beginnen; Sie werden unten im Terminal angezeigt. Dieser untere Teil fungiert als integrierte Eingabeaufforderung in vim.
Um nach einer Zeichenfolge zu suchen, Backslash eingeben /
gefolgt von der zu suchenden Zeichenfolge.
Zum Beispiel: /Hund
Wie oben zu sehen ist, wird der Cursor von der Position, an der sich der Cursor befindet, zum nächsten Vorkommen der Zeichenfolge gebracht. Der Cursor wurde auf die Zeichenfolge gesetzt Braun
wie in einem früheren Bild gezeigt. Um die nächsten Vorkommen zu finden, drücken Sie n
. Nach dem letzten Auftreten geht es zurück zum ersten und gibt eine Nachricht aus „Suchtreffer BOTTOM, weiter oben“.
So suchen Sie nach einer Zeichenfolge mit einem Sonderzeichen, oder zum Beispiel Zeichen wie ein Plus (+) oder ein Leerzeichen, stellen Sie dem Zeichen einen Schrägstrich voran:
Zum Beispiel: /C\+
So suchen und ersetzen Sie das erste Vorkommen einer Zeichenfolge in einer Zeile, platzieren wir den Cursor in dieser Zeile und verwenden den folgenden Befehl:
Zum Beispiel: :s/dog/tiger
Wie Sie im obigen Screenshot sehen können, ist die dritte Zeile, in der sich der Cursor befindet, das Wort Hund
wurde ersetzt durch Tiger
wie im Befehl angegeben.
So suchen und ersetzen Sie alle Vorkommen von Zeichenfolgen in einer Zeile, benutzen /g
Am Ende.
Zum Beispiel: :s/cat/dog/g
Um alle Vorkommen global zu suchen und zu ersetzen, wir gebrauchen %S
statt nur S
:
Zum Beispiel: :%s/Hund/Maus
Wenn der String aus Sonderzeichen wie Leerzeichen besteht, kann ihm wie oben gezeigt ein Schrägstrich vorangestellt werden.
? Beifall!