VIM - Text suchen und ersetzen
Suche im Command-Modus
In VIM suchen ist eigentlich recht einfach. Zuerst musst du in den Command-Modus kommen, denn im Eingabemodus funktioniert das nicht. Wenn du dich im Eingabemodus befindest, genügt ein Druck auf Escape.
Anschließend drückst du auf den Doppelpunkt ":". Der Cursor springt in die Befehlszeile von VIM. Jetzt kannst du einen / gefolgt von einem regulären Ausdruck eingeben.
Anschließend drückst Du die Eingabetaste und voila, wird das erste gefundene Zeichen angesprungen.
Mit Druck auf n kannst Du zum nächsten gefundenen Teilstring im Text springen.
Text in VIM ersetzen
Was wirklich praktisch ist: Die Ersetzen-Funktion in VIM. Sie funktioniert ähnlich wie die Suche, nur ist die Eingabe etwas anders aufgebaut. In der Commandozeile gibst du in der Regel folgendes Muster ein:
:[Range]s/<suchtext>/<ersatztext>/[mod] [count]
- In Range erfasst man die Zeilen, in denen gesucht und ersetzt werden soll.
- <suchtext> ist der reguläre Ausdruck bzw. der Text, der gesucht und ersetzt werden soll.
- <ersatztext> ist der Text, der für den Suchtext in den Text eingefügt werden soll.
- [mod] ist der optionale Modifizierer, beispielsweise g für global.
- [count] ist optional die Anzahl der Zeilen, in die die Ersetzung gemacht werden soll.
Beispiel:
:1,19s/ö/ö/g 10
Der obige Befehl ersetzt den Buchstaben ö durch ö Angegeben wurde ein Range von 1 bis 19. Da aber ein Count von 10 angegeben worden sind, beschränkt sich das Suchen und Ersetzen auf die letzten zehn Zeilen.
Wenn keine Range-Angaben gemacht worden wären, aber ein Count von 10, würde die Suche über die folgenden zehn Zeilen ab der aktuellen Zeilenposition erfolgen.
Ohne Range- oder Count-Angaben wird nur in der aktuellen Zeile gesucht. Die aktuelle Zeile ist die Zeile, in der sich der Cursor zuletzt befand.
Posted in Unix, Linux, VIM