Use o comando unix externo nl
.
:'<,'>!nl -w 3 -n rz -s' '
Suponha que eu tenha um arquivo de texto contendo algumas strings:
string_g
string_r
string_qqwer
string_p
string_f
string_3qw
string_e
string_qw
E preciso inserir números crescentes ou decrescentes antes das strings:
001 string_g
002 string_r
003 string_qqwer
004 string_p
005 string_f
006 string_3qw
007 string_e
008 string_qw
Apenas para evitar confusão:
Eu não quero números de linha a serem exibidos. Eu sei como isso funciona. O que eu quero é um número real no começo de cada string dentro do texto.
Existe uma maneira de fazer isso automaticamente com vim
?
Eu posso marcar o começo de cada string com CTRL - V então digite : para entrar no modo de execução, o que me permitirá execute o comando na seleção via :'<,'>
, mas estou preso lá.
Com vim
apenas (não use o comando externo):
let i=1 | '<,'>g/^/ s//\=printf("%03d ",i) / | let i+=1
Altere let i=1
para o número que você deseja iniciar.
Tags vim text-processing