Substituir texto quando estiver no modo de bloqueio visual

10

Talvez eu esteja procurando o caminho errado, mas não consegui descobrir como fazer isso.

Aqui está o cenário: Eu tenho uma lista em um arquivo de texto onde eu quero inserir a mesma palavra em várias linhas, aqui está um exemplo de texto:

12.1           Item1
12.2           Item2
12.3           Item3

Agora eu bloqueio visual marca a oitava coluna, indicada com sublinhados abaixo, e pretendo substituir parte do espaço em branco com Done sem mover a coluna de item:

12.1   _       Item1
12.2   _       Item2
12.3   _       Item3

Eu esperava poder entrar no modo de substituição, mas só posso inserir inserir ( I ), acrescentar ( A ) ou modo de alteração ( c ). O modo de mudança chega perto do que eu quero: se eu souber o comprimento da palavra, o bloco pode ser ajustado para a mesma largura.

Há algo que estou sentindo falta aqui?

    
por Thor 11.09.2012 / 12:52

2 respostas

18

Por que você não seleciona 4 colunas e alcança c ?

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

Além disso, você pode usar :h normal :

V
2j
:'<,'>norm 7lRDone
<Esc>
    
por 11.09.2012 / 14:10
1

Se você quiser substituir um bloco visual, use o vis.vim plugin .

link

Para instalar:

Faça o download do vis.vba.gz no link

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

# Source the open file.
:so %

# Quit Vim
:q

Uma vez instalado:

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

Melhor ainda, você pode executar qualquer comando Ex no bloco visual, não apenas substituições. Por exemplo, :B !sort .

    
por 06.11.2015 / 18:12