Reemplazar una línea con la línea que tengo en el buffer en vi

Reemplazar una línea con la línea que tengo en el buffer en vi

Yo cco ddpara copiar una línea en mi búfer de pegado. Luego voy a una nueva ubicación.

Quiero reemplazar una línea que veo. Entonces escribo p Down dd.

¿Existe una forma más sencilla (menos pulsaciones de teclas)?

Respuesta1

Puede escribir Vpara seleccionar la línea y luego preemplazarla.

Respuesta2

Otra forma de hacer esto sería"_ddp

"_ddelimina la línea actual en el búfer nulo. ¡Esto no sobrescribe lo que acabas de copiar, lo cual me ha resultado útil muchas veces! Luego ppega la línea que habías copiado anteriormente.

Puede que no sea más corto en términos de pulsaciones de teclas, ¡pero saber que esta es una opción puede ser muy útil!

Respuesta3

Angus y Thor tienen las respuestas breves cubiertas, así que aquí hay una exploración adicional.

Si por alguna razón deseas eliminar antes de pegar, puedes aprovechar los registros numerados. El "0registro contiene el texto eliminado por el último yo Y, pero no lo elimina. Los registros "1directos "9almacenan las últimas 9 eliminaciones/cortes que haya realizado. Entonces:

  • Si tiraste con yy, puedes reemplazar con dd"0P.
  • Si cortas con ddo cc, puedes reemplazar con dd"2P. (No dd"1Pporque ddse llene "1).

Pruebe :help "0para obtener información más detallada.

Respuesta4

Supongamos que desea reemplazar la línea 1 por 3 de lo que podría hacer:1m3|2d

Esto efectivamente mueve la línea 1 a la línea 3 y elimina la línea 2 (es decir, la antigua línea 3)

información relacionada