Substituir texto no modo de bloqueio visual

10

Talvez eu esteja pesquisando da maneira errada, mas não consegui descobrir como fazer isso.

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

12.1 Item1
12.2 Item2
12.3 Item3

Agora, eu bloco visualmente a 8a coluna, indicada com sublinhados abaixo, e pretendo substituir parte do espaço em branco por Donesem mover a coluna do item:

12.1 _ Item1
12.2 _ Item2
12.3 _ Item3

Eu esperava poder entrar no modo de substituição, mas só posso inserir insert ( I), append ( A) ou change-mode ( c). O modo de mudança chega perto do que eu quero: se eu souber o tamanho da palavra, o bloco poderá ser definido com a mesma largura.

Há algo que estou perdendo aqui?

Thor
fonte

Respostas:

18

Por que você não seleciona 4 colunas e clica c?

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

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

V
2j
:'<,'>norm 7lRDone
<Esc>
romainl
fonte
1
Isso funciona Done, mas e se eu quiser escrever outra coisa, quero estar livre da contagem de caracteres, se possível.
Thor
1
:normé seu amigo então.
romainl
Sim, a segunda solução pode ser usada para um mapeamento conveniente. Obrigado.
Thor
1

Se você deseja substituir dentro de um bloco visual, pode usar o vis.vimplugin .

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

Para instalar:

Faça o download do arquivo vis.vba.gz em 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

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.

Christian Long
fonte
Bom plugin, vou usá-lo :-). Mas como posso usá-lo para substituir colunas arbitrárias?
Thor
Certo, você ainda tem o problema de configurar rapidamente a largura do bloco visual para corresponder às suas colunas de largura arbitrária. Normalmente, faço <count> wou epara selecionar várias colunas rapidamente, depois ajusto com hou l.
Christian Long