Der Befehl dd löscht die aktuelle Zeile in Vim. Mit Zahlenpräfixen, Bereichen und Mustersuche lassen sich auch mehrere Zeilen auf einmal entfernen.
Einzelne Zeile löschen
Im Normal-Modus platzierst du den Cursor auf der gewünschten Zeile und drückst:
dd
Die Zeile wird entfernt und in das Standard-Register kopiert. Du kannst sie mit p wieder einfügen.
Falls du dich im Einfüge-Modus befindest, drücke zuerst Esc, um in den Normal-Modus zu wechseln.
Mehrere Zeilen löschen
Stelle dem dd-Befehl eine Zahl voran, um mehrere aufeinanderfolgende Zeilen zu löschen. Die folgenden fünf Zeilen ab der Cursorposition entfernst du mit:
5dd
Die Zeilen werden gelöscht und im Register gespeichert.
Zeilenbereiche löschen
Mit dem Ex-Befehl :d löschst du einen definierten Bereich. Die Syntax lautet:
:[start],[end]d
Die Zeilen 3 bis 5 löschst du mit:
:3,5d
Spezielle Bereichsangaben
| Zeichen | Bedeutung |
|---|---|
. | Aktuelle Zeile |
$ | Letzte Zeile |
% | Alle Zeilen |
Praktische Beispiele:
:.,$d
Löscht von der aktuellen Zeile bis zum Dateiende.
:.,1d
Löscht von der aktuellen Zeile bis zum Dateianfang.
:10,$d
Löscht ab Zeile 10 bis zum Dateiende.
Alle Zeilen löschen
Den gesamten Dateiinhalt löschst du mit:
:%d
Das Prozentzeichen % steht für alle Zeilen der Datei.
Zeilen nach Muster löschen
Der globale Befehl :g löscht alle Zeilen, die einem Muster entsprechen:
:g/muster/d
Alle Zeilen, die “fehler” enthalten, löschst du mit:
:g/fehler/d
Zeilen ohne Muster löschen
Mit :g! oder :v löschst du alle Zeilen, die das Muster nicht enthalten:
:g!/wichtig/d
Entfernt alle Zeilen ohne das Wort “wichtig”.
Nützliche Muster
Kommentarzeilen aus einem Shell-Skript entfernen:
:g/^#/d
Das Muster ^# trifft auf Zeilen, die mit # beginnen.
Leere Zeilen entfernen:
:g/^$/d
Das Muster ^$ trifft auf Zeilen ohne Inhalt.
Zeilen mit nur Leerzeichen entfernen:
:g/^\s*$/d
Das Muster ^\s*$ erfasst auch Zeilen, die ausschließlich Whitespace enthalten.
Zusammenfassung
| Befehl | Wirkung |
|---|---|
dd | Aktuelle Zeile löschen |
5dd | Fünf Zeilen löschen |
:3,5d | Zeilen 3 bis 5 löschen |
:%d | Alle Zeilen löschen |
:g/muster/d | Zeilen mit Muster löschen |
:g!/muster/d | Zeilen ohne Muster löschen |
Gelöschte Zeilen landen im Standard-Register und lassen sich mit p wieder einfügen. Mit u machst du das Löschen rückgängig.