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í?

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>

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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.