Reemplazar texto en modo de bloque visual

10

Tal vez estoy buscando por el camino equivocado, pero no he podido averiguar cómo hacerlo.

Aquí está el escenario: Tengo una lista en un archivo de texto donde quiero insertar la misma palabra en varias líneas, aquí hay un ejemplo de texto:

12.1           Item1
12.2           Item2
12.3           Item3

Ahora marca el bloque visual en la octava columna, que se indica con los guiones bajos a continuación, y pretendo reemplazar parte del espacio en blanco con Done sin mover la columna de elementos:

12.1   _       Item1
12.2   _       Item2
12.3   _       Item3

Esperaba poder entrar en modo de reemplazo, pero solo puedo ingresar a insertar ( I ), adjuntar ( A ), o modo de cambio ( c ). El modo de cambio se acerca a lo que quiero: si conozco la longitud de la palabra, el bloque se puede configurar en el mismo ancho.

¿Hay algo que me estoy perdiendo aquí?

Thor
fuente

Respuestas:

18

¿Por qué no seleccionas 4 columnas y pulsas? c?

<C-v>
2j
3l
cDone
<Esc>

Además, podrías usar :h normal:

V
2j
:'<,'>norm 7lRDone
<Esc>
romainl
fuente
1
Eso funciona para Done, pero y si quiero escribir otra cosa, quiero estar libre de contar caracteres, si es posible.
Thor
1
:norm es tu amigo, entonces.
romainl
Sí, la segunda solución se puede utilizar para un mapeo conveniente. Gracias.
Thor
1

Si desea sustituir dentro de un bloque visual, puede utilizar el vis.vim enchufar .

http://vim.wikia.com/wiki/Applying_substitutes_to_a_visual_block

Instalar:

Descargar vis.vba.gz desde http://www.drchip.org/astronaut/vim/index.html#VIS

# Open vis.vba.gz in Vim 7.1 or later.
vim vis.vba.gz

# Source the open file.
:so %

# Quit Vim
:q

Una vez instalada:

ctrl-v to enter visual-block mode
Move to select the block you want
:B s/pattern/newtext/

Aún mejor, puede ejecutar cualquier comando Ex en el bloque visual, no solo las sustituciones. Por ejemplo :B !sort.

Christian Long
fuente
Bonito plugin, lo usaré :-). Pero, ¿cómo puedo usarlo para reemplazar columnas arbitrarias?
Thor
Correcto, todavía tiene el problema de configurar rápidamente el ancho del bloque visual para que coincida con sus columnas de ancho arbitrario. Normalmente hago & lt; count & gt; w o e para seleccionar varias columnas rápidamente, luego ajuste con h o l.
Christian Long