No es fácil encontrar un buen título para mi problema.
Soy consciente de insertar delante de un bloque de texto:
Ctrl- v seleccione líneas I escriba texto ESC
Ahora me gustaría hacer esto, pero también reemplazando una parte en mi selección de bloque. Actualmente estoy haciendo dos operaciones
Ctrl- v seleccione bloque x volver a empezar
Seguido por la secuencia que mencioné anteriormente.
¿Hay alguna forma de combinar estas dos operaciones seleccionando ( Ctrl- v) el bloque solo una vez?
Aquí hay un pequeño ejemplo:
Me gustaría transformar el siguiente bloque
1 text
2 text
3 text
4 text
5 text
dentro
new text
new text
new text
new text
new text
haciendo solo una "operación".
visual-mode
replace
Patrick B.
fuente
fuente
Respuestas:
Escribir cdespués de seleccionar su bloque en lugar de xeliminará el texto en el bloque de selección e ingresará al modo de inserción. Una vez que escriba algo y salga del modo de inserción, debería tener el mismo cambio en cada línea.
Tratar
Ctrl- v- seleccione bloque - c- inserte lo que sea -Esc
fuente
Imagine una fila de tres letras mayúsculas diferentes como la de arriba.
^V
seleccionando lo anterior, no pude cambiar todos los deA
la última letra de la fila debido a las líneas de longitud desiguales. Las letras mayúsculas anteriores funcionaban bien con:s/\%V1/T/g
"La letra mayúscula anterior era una T hecha de '1'. Cambiar/T/
a lo que sea.Pero al seleccionar la última letra de bloque que se muestra arriba, solo cambió todos los '1' a 'A' hasta el punto de la A *, y el resto permaneció como uno.
* La línea más corta.
Para hacer que todas las líneas tengan la misma longitud, las rellené con espacios. (Soy nuevo en vim, así que estoy seguro de que se podría escribir un mejor guión).
Nota: El pico de la A comenzó en la línea 2.
Después de esto,
:s/\%V1/T/g
funcionó según lo anunciado en la última letra de molde en la fila.PD: Leí que la
execute
línea de arriba debería funcionar sin los puntos, pero no me funcionó.fuente