Wie löscht man den gesamten Text über einer bestimmten Zeile?

239

Wie löscht man den gesamten Text über einer bestimmten Zeile? Zum Löschen unterhalb einer Zeile verwende ich "d shift g"

user339108
quelle

Antworten:

491
dgg

löscht alles von Ihrer aktuellen Zeile bis zum Anfang der Datei.

dist der ggLöschbefehl und ein Bewegungsbefehl, der besagt, dass zum Anfang der Datei gehen soll. Wenn er zusammen verwendet wird, bedeutet dies, dass er von meiner aktuellen Position zum Anfang der Datei gelöscht wird.

Ebenfalls

dG

löscht alle Zeilen an oder unter der aktuellen

Andy White
quelle
25
Und kdgg wird dasselbe tun, außer die betreffende Zeile nicht zu löschen.
Turm
1
Was genau bedeutet das ggLöschen nach dem Löschen?
3
gg ist eine Vim-Verknüpfung - ": help gg" sagt: Gehe zu Zeile [Anzahl], erste Standardzeile, für das erste nicht leere Zeichen | Zeilenweise |. Wenn startofline nicht festgelegt ist, behalten Sie dieselbe Spalte bei.
Andy White
35
Wenn Sie danach suchen, dGwerden alle Zeilen an oder unter der aktuellen gelöscht.
dimo414
1
@ dan3 Ich denke, die Bedeutung von "top of the file" ist aufgrund der gestellten Frage ziemlich klar, aber Sie können meine Antwort gerne bearbeiten, wenn Sie möchten, oder Sie können Ihre eigene Antwort mit einer beliebigen Terminologie erstellen.
Andy White
38

:1,.dlöscht die Zeilen 1 auf aktuell.
:1,.-1dlöscht die Zeilen 1 bis über dem aktuellen Wert.

(Persönlich würde ich die anderen Antworten verwenden dggoder kdggmögen, aber TMTOWTDI.)

kurzlebig
quelle
27
Ich habe es versucht, TMTOWTDIaber es scheint mich nur im Einfügemodus zu lassen, ohne etwas zu löschen?
zu viel PHP
12
TMTOWTDI ist keine der mehr als eine Möglichkeit, dies zu tun.
Sarah
3
tmtowtdi Es gibt mehr als einen Weg, dies zu tun (TMTOWTDI oder TIMTOWTDI, ausgesprochen "Tim Toady"), ist ein Perl-Motto.
Vaichidrewar
@toomuchphp Der Kommentar war fantastisch. Aber der Benutzername ... das hat es perfekt gemacht. +1 für dich.
Parthian Shot
38
kdgg

Löschen Sie alle Zeilen über der aktuellen.

Turm
quelle
5
Das ist etwas verwirrend; Es bewegt den Cursor tatsächlich eine Zeile nach oben mit k, löscht dann die aktuelle Zeile und nach oben mit dgg.
dimo414
2
Und benutze 5kdgg, um alle Zeilen 5 Zeilen über der aktuellen zu löschen;)
Stefan van den Akker
8

d1G = nach oben löschen einschließlich aktueller Zeile (vi)

mikiedba
quelle
6

Vorausgesetzt, Sie kennen diese vim-Befehle:

1G -> go to first line in file
G -> go to last line in file

Dann sind die folgenden Punkte sinnvoller, einheitlicher und IMHO leichter zu merken:

d1G -> delete starting from the line you are on, to the first line of file
dG -> delete starting from the line you are on, to the last line of file

Prost.

Lian Sebe
quelle