2010-08-27 27 views
5

En Vim, ¿cómo es posible reemplazar el resto de una línea con el texto extraído? Si presiono "D", el texto extraído será reemplazado por el texto eliminado.Vim: Reemplazar el final de la línea

Además, ¿cómo es posible arrastrar hasta el final de la línea? Si presiono "Y", se sacudirá toda la línea.

Respuesta

2

Prensa v para entrar en el modo visual en el carácter a partir de la selección. Luego, presione $ para ir al final de la línea. Después de eso, presione y para tirar de la selección.

Así:

v$y

En lugar de YanKing, utilice p a pegar. Esto pegará sobre la selección. Así que después de utilizar D eliminar algo de texto, hacer:

v$p

Esto pegará el texto eliminado durante la selección.

+0

Oh, lo siento, pensé que te referías a la prensa v $ y para tirar. Sí, eso funciona, gracias. – Rafid

12

dos formas en las que puede sustituir el texto hasta el final de la línea con el texto previamente un tirón:

  1. v$p - v para entrar en el modo visual; $ para pasar al final de la línea; p para pegar sobre el texto resaltado.
  2. D"0p - el último texto extraído (en lugar de eliminado) se almacena en el registro 0, entonces: D para eliminar al final de la línea; "0 para seleccionar el registro 0; p para pegar ese registro.
+0

No sabía acerca de registrar '0'. Eso es muy bonito. – wuputah

+0

+1 - no sabía sobre el registro. –

+0

Sí, tampoco sabía sobre el comentario de registro. ¿Hay alguna forma de seleccionar dos respuestas como la respuesta aceptada? :) – Rafid

4

Sus preguntas parece ser respondidas a fondo por otros en este punto (v$p y y$), pero quería una pieza adicional de información:

dar un tirón al final de la línea, la forma predeterminada es y$ . Sin embargo, es una práctica bastante común para map Y y$ en su .vimrc, ya que el comportamiento predeterminado de Y es redundante con yy, y es inconsistente con otras asignaciones, como D y C.

+0

Gracias por este comentario, es muy útil. Agregaré eso a mi .vimrc :) – Rafid

+0

Eso es ingenioso. Gracias – devth

1

Así es como yo lo haría:

  1. "ay$ (tirón desde el cursor al final de la línea en el registro a)
  2. Mover el cursor a la posición deseada reemplazar.
  3. D (borrado al final de la línea)
  4. "ap (pegue el texto pegado en el paso 1)

Es cierto que esto es muy similar a another answer pero yo prefiero especificar explícitamente un registro, ya que las fuerzas que piense en lo que estoy haciendo.Podría verme sobrescribiendo accidentalmente el registro 0 si me distraía o intentaba hacer otra cosa.

2

Si desea eliminar texto sin afectar el registro principal (sin nombre), elimine su texto en el "registro de agujero negro", llamado "_. Hazlo a través del "_D. Entonces, el registro sin nombre no se verá afectado y podrá pegar el texto que retiró previamente de forma normal.

Ver :h quote_.

Cuestiones relacionadas