vim: reemplaza todos los caracteres hasta el final de la línea

30

Tal vez estoy siendo tonto, pero ¿puedes reemplazar todos los caracteres desde donde está el cursor hasta el final de la línea por un comando? Luego use .para hacer el mismo reemplazo en la siguiente línea y así sucesivamente.

Sardathrion - Restablece a Monica
fuente

Respuestas:

49

Si entendí tu pregunta correctamente, prueba esto:

C(esa es una C mayúscula) borrará todo desde el cursor hasta el final de la línea y lo pondrá en modo INSERTAR , luego escribirá su reemplazo, abandonará el modo INSERTAR y lo usará .para repetir el proceso en otro lugar.

sr_
fuente
Multa. :)De nada.
Sr_
16
si alguien se preguntaba, es una C mayúscula :)
David Silva Smith
1
Sería bueno para actualizar la respuesta para especificar que se trata de una C mayúscula
fraxture
14

Agregando a la respuesta de sr_:

Si su cursor comienza en la misma posición en cada línea, es posible que le interese la función Bloqueo visual .

Escriba lo siguiente en orden, con el cursor en la posición inicial:

  • Ctrl+ v: Ingresa al modo de bloqueo visual.
  • $: ir al final de la línea.
  • [X]j: reemplace X con el número de líneas que desea bajar.

Esto debería crear una selección rectangular que va desde el cursor en la primera línea hasta el final de la línea [X] líneas debajo.

Luego puede reemplazar toda su selección:

  • c: elimina la selección y entra en modo de inserción.
  • insertar texto nuevo
  • Esc: Salga del modo de inserción; Vim repetirá automáticamente el paso en cada línea seleccionada.

Uso bloque visual siempre que puedo, pensé en compartir

rahmu
fuente
+1 buena respuesta de hecho. Pero en realidad no es lo que quiero, ya que a veces mi código no está bien formateado así ^ _ ~
Sardathrion - Restablecer a Monica
@sardathrion; Comentario RE, 'bien formateado'. Creación de tablas en Markdown ¡ Pude rellenar automáticamente espacios en n+1líneas, después de crear una línea nseleccionando Visual Block al revés ! En otras palabras, la forma era similar a 7 hacia atrás o L invertida verticalmente, o 'no estaba bien formateada'. jajaja
xtian
3

Co c$es para "cambiar" y Res para "reemplazar".

Dos comportamientos casi similares. El primero eliminaría la línea antes de comenzar a escribir; mientras que este último le permitiría escribir sobre los caracteres y posiblemente ir más allá del límite de los caracteres de la línea anterior que se muestran.

ismail
fuente
1

Simplemente presione 'C', es decir, Capital C en el modo de comando, y escriba el texto de reemplazo.

weima
fuente
0

Las otras respuestas pasaron por alto estas, no entran en modo de inserción.

  • D Eliminar al final de la línea
  • d$ Elimina del cursor al final de la línea.

Entonces, por supuesto, usar .

Gareth A. Lloyd
fuente
-1 por no ingresar al modo de inserción ya que eso es específicamente lo que pedí. +1 por completo.
Sardathrion - Restablece a Monica
0

Como puede ser útil, una vez que estamos tratando de cambiar hasta el final de la línea. He creado una asignación de inserción para realizar esta tarea, no se usa Dporque en modo de inserción esta tecla se usa para disminuir la sangría. Por lo que es Ctrl-k

:inoremap <C-k> <C-o>C
SergioAraujo
fuente