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

ZeichenBedeutung
.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

BefehlWirkung
ddAktuelle Zeile löschen
5ddFünf Zeilen löschen
:3,5dZeilen 3 bis 5 löschen
:%dAlle Zeilen löschen
:g/muster/dZeilen mit Muster löschen
:g!/muster/dZeilen 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.

Verwandte Artikel