¿Cómo se elimina todo el texto sobre una línea determinada?

239

¿Cómo se elimina todo el texto sobre una línea determinada? Para eliminar debajo de una línea, uso "d shift g"

usuario339108
fuente

Respuestas:

493
dgg

eliminará todo de su línea actual a la parte superior del archivo.

des el comando de eliminación, y gges un comando de movimiento que dice ir al principio del archivo, por lo que cuando se usa en conjunto, significa eliminar de mi posición actual al principio del archivo.

también

dG

eliminará todas las líneas en o debajo de la actual

Andy White
fuente
25
Y kdgg hará lo mismo excepto que no eliminará la línea en cuestión.
Torre
1
¿Qué significa exactamente la ggeliminación posterior?
3
gg es un acceso directo de Vim - ": help gg" dice: Ir a la línea [cuenta], primera línea predeterminada, en el primer carácter no en blanco | linewise |. Si startofline 'no está configurado, mantenga la misma columna.
Andy White
35
Para aquellos que lo buscan, dGeliminarán todas las líneas en o debajo de la actual.
dimo414
1
@ dan3 Creo que el significado de "parte superior del archivo" es bastante claro en función de la pregunta formulada, pero puede editar mi respuesta si lo desea, o puede crear su propia respuesta utilizando la terminología que desee.
Andy White
38

:1,.delimina las líneas 1 a la actual.
:1,.-1delimina las líneas 1 a la corriente anterior.

(Personalmente, usaría dggo me kdgggustarían las otras respuestas, pero TMTOWTDI).

efímero
fuente
27
Lo intenté TMTOWTDIpero parece que me deja en modo de inserción sin eliminar nada.
demasiado php
12
TMTOWTDI no es una de las más de una forma de hacerlo.
Sarah
3
tmtowtdi Hay más de una forma de hacerlo (TMTOWTDI o TIMTOWTDI, pronunciado "Tim Toady") es un lema de Perl.
vaichidrewar
@toomuchphp El comentario fue fantástico. Pero el nombre de usuario ... eso lo hizo perfecto. +1 a ti
Parthian Shot
38
kdgg

eliminar todas las líneas sobre la actual.

Torre
fuente
55
Esto es un poco confuso; en realidad mueve el cursor hacia arriba una línea con k, luego elimina la línea actual y hacia arriba con dgg.
dimo414
2
Y use 5kdgg para eliminar todas las líneas 5 líneas por encima de la actual;)
Stefan van den Akker
8

d1G = eliminar al inicio incluyendo la línea actual (vi)

mikiedba
fuente
6

Siempre que conozca estos comandos vim:

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

entonces, los siguientes tienen más sentido, son más unitarios y más fáciles de recordar en mi humilde opinión:

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

Salud.

Lian Sebe
fuente