Você pode experimentar este comando que, por não ser intuitivo, aumenta i
em cada partida:
:let i = 1 | g/^$/execute "normal i>item" . i | let i = i + 1
No Vim tenho o seguinte texto:
Door Chair Table Uganda
E eu quero adicionar texto numerado em todas as linhas ímpares, o que deve dar isto:
>item1
Door
>item2
Chair
>item3
Table
>item4
Uganda
Isso é possível no vim?
Aqui está um vimscript para fazer isso:
:for s:i in range(1, line("$") / 2)
: execute "normal " . eval(s:i * 2 - 1) . "gg"
: execute "normal a" . ">item" . s:i
:endfor
gg
. >itemX
à linha, em que X é o número do item. Você pode inserir isso diretamente na linha de comando do vim ou colocá-lo em um arquivo e, em seguida, executá-lo usando :source <filename>
.
Alternativamente, você pode adicionar isto como uma função ao seu .vimrc, e então executá-lo usando :call <funcname()>
.