Ich habe versucht, Folgendes zu befolgen:
So löschen Sie ausgewählten Text im VI-Editor
aber
5dd
gibt
E492: Kein Editorbefehl: 5dd
Ich habe dann versucht:
5d
Was nur eine einzelne Zeile löscht. Wie kann ich mehrere Zeilen löschen?
Ich habe versucht, Folgendes zu befolgen:
So löschen Sie ausgewählten Text im VI-Editor
aber
5dd
gibt
E492: Kein Editorbefehl: 5dd
Ich habe dann versucht:
5d
Was nur eine einzelne Zeile löscht. Wie kann ich mehrere Zeilen löschen?
Antworten:
Klingt so, als würden Sie die Befehle im Befehlsmodus eingeben (auch bekannt als "Ex-Modus"). In diesem Zusammenhang
:5d
würde Zeile 5 entfernen, sonst nichts. Damit Sie5dd
wie beabsichtigt arbeiten können - dh fünf aufeinanderfolgende Zeilen ab dem Cursor entfernen -, geben Sie sie im normalen Modus ein und stellen Sie den Befehlen kein Präfix voran:
.quelle
Ich finde das einfacher
/superuser/170795/how-can-i-select-and-delete-lines-of-text-in-vi
quelle
Sie können mehrere (Bereichs-) Zeilen löschen, wenn Sie die Zeilennummern kennen:
Hinweis: d steht für Löschen
Dabei ist
start_line_no die Anfangszeile, die Sie löschen möchten, und end_line_no ist die Endzeile, die Sie löschen möchten. Die Zeilen zwischen Start und Ende, einschließlich Start und Ende, werden gelöscht.
Z.B:
Die Zeilen zwischen 45 und 101 einschließlich 45 und 101 werden gelöscht.
quelle
$
die letzte Zeile in der Datei angeben. Also:45,$d
würde jede Zeile von 45 bis zum Ende löschen./<\/div>/
:.,[end_line_no]d
Befehle, die zur Verwendung im normalen Modus aufgelistet sind (Präfix mit :für den Befehlsmodus).
In Vim getestet.
Nach Zeilenbetrag:
Nach Zeilennummern:
Backwards range given, OK to swap (y/n)?
quelle
Wenn Sie eine nicht visuelle Modusmethode bevorzugen und die Zeilennummern bestätigen, möchte ich Ihnen einen anderen einfachen Weg vorschlagen.
Beispiel
Meine Methode schlägt vor, dass Sie im Befehlsmodus einen der folgenden Befehle eingeben:
Es liest:
Beachten Sie, dass
vim
Siegg
anstelle von verwenden könnenG
.Vergleichen Sie mit der Antwort von @Bonnie Varghese:
Der obige Befehl aus seiner Antwort erfordert 9-maliges Tippen, einschließlich enter, wobei meine Antwort 8- bis 10-maliges Tippen erfordert. Somit ist eine Geschwindigkeit meiner Methode vergleichbar.
Persönlich ich mich lieber
45Gd101G
über ,:45,101d
weil ich wie auf Stick auf die Syntax des Befehls des vi, in diesem Fall:quelle
d5d "schneidet" fünf Zeilen
Normalerweise werfe ich die Zahl einfach in die Mitte wie:
d7l = 7 Buchstaben löschen
quelle
Drücken Sie die EscTaste, um sicherzustellen, dass Sie sich nicht in einem Bearbeitungsmodus befinden. Platzieren Sie den Cursor in der ersten zu löschenden Zeile. Geben Sie ein
:5dd
. Die aktuelle Zeile und die nächsten vier Zeilen sollten gelöscht werden.Alternativ, wenn Sie die Zeilennummerierung aktiviert haben ...
Drücken Sie die EscTaste, um sicherzustellen, dass Sie sich nicht in einem Bearbeitungsmodus befinden. Geben Sie ein,
:#,#d
wo '#' für die zu löschenden Anfangs- und Endzeilennummern steht.quelle
Typ (für nummerierte Zeilen).
:set number
quelle
Wenn Sie einen Bereich NACH einem bestimmten Zeilentrigger löschen möchten, können Sie so etwas verwenden
Das löscht 11 Zeilen (einschließlich) nach jeder Begegnung von
^TMPDIR
.quelle
es ist dxd, nicht ddx
Wenn Sie 5 Zeilen löschen möchten, bewegen Sie den Cursor auf den Anfang der ersten zu löschenden Zeile und d5d
quelle
Um alle Zeilen zu löschen, verwenden Sie - ESC gg dG. Um einige Zeilen zu löschen, sagen wir 5 und verwenden Sie ESC 5dd
quelle
Es könnte wie folgt gemacht werden ..
quelle