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>
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?
Se você quiser substituir um bloco visual, use o vis.vim plugin .
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 .