Borrar una línea más rápido que [0] [d] [$]

18

¿Hay una forma más rápida de borrar el texto en una línea que

  • presionando 0para saltar al inicio, luego
  • presionando d$para eliminar hasta el final de la línea?

Además, ¿qué pasa si quisiera eliminar todo excepto la sangría? ¿Hay una manera de hacer eso?

Robbie Wxyz
fuente

Respuestas:

34

Como dijiste, hay varias formas, y también puedes tener en cuenta cuál será tu próxima acción después de borrar o eliminar la línea actual.

  1. dd eliminará la línea actual (no está claro)
  2. 0D borrará la línea actual, incluido el espacio en blanco
  3. ^Dborrará la línea actual sin incluir espacios en blanco ( ^dg_ahorra espacio final)
  4. 0C borrará la línea actual, incluido el espacio en blanco, y lo pondrá en modo de inserción
  5. ^Cborrará la línea actual sin incluir espacios en blanco y lo pondrá en modo de inserción ( ^cg_ahorra espacio final)

cco Sfuncionará como 4. o 5. si 'autoindent' está apagado o encendido respectivamente.

Así que usa lo que se ajuste a la acción en cuestión. Creo que 0Des el más rápido para despejar la línea, pero puede asignar eso a algo si lo desea, para hacerlo aún más rápido.

akshay
fuente
77
@SuperScript Ses sinónimo decc
FDinoff
1
Gracias por la gran respuesta, @akshay; TYLTK está con lo mejor: vi.stackexchange.com/…
Robbie Wxyz
9

Sí. Si hay algo que me gusta de Vim, es que la respuesta a "¿Puedo hacer eso?" casi siempre es un enfático .

0D Salta al principio, luego elimina hasta el final de la línea.

^D (no Ctrl + D) saltará al primer carácter que no sea un espacio en blanco, luego se eliminará hasta el final.

(PD: descubrí esto hace un momento y quería compartirlo con cualquier otro novato. Avísame si hay una mejor manera).

Robbie Wxyz
fuente
6

Limpiar la tubería con una llave (desplazado): S.

Esto también mantiene la sangría.

Entra en modo de inserción en la primera posición después de la sangría, o al comienzo de la línea, justo lo que necesita para sustituir una línea, por lo tanto, el nombre S, como sustituto.

:help S

["x]S   Delete [count] lines [into register x] and start
        insert.  Synonym for "cc" |linewise|.

["x]cc  Delete [count] lines [into register x] and start
        insert |linewise|.  If 'autoindent' is on, preserve
        the indent of the first line.
Volker Siegel
fuente
SEs una gran clave.
domi91c
3

Con el complemento " vim-textobj-line " de Kana , puede usar operaciones en línea con sangría con il(p dil. Ej. ), O en toda la línea sin la nueva línea, con al(p yal. Ej .). La ventaja de este enfoque es sutil: en lugar de tener que pensar en ambos movimientos (inicio, fin) para la operación deseada, usted especifica el objeto de texto directamente : i n l ine, a l ine.

VanLaser
fuente