Não tem problema: Crie o arquivo de macro com comandos vi. Por exemplo:
:1,$s/a/b/g
:wq
Em seguida, execute vi -s macro_file data_file
Um conselho: tente usar sed
/ awk
e, em vez de vi
, para essa finalidade
Em um script bash eu quero editar um arquivo. Existe uma maneira de escrever uma macro no vim, salvá-lo e chamá-lo no script bash?
Não tem problema: Crie o arquivo de macro com comandos vi. Por exemplo:
:1,$s/a/b/g
:wq
Em seguida, execute vi -s macro_file data_file
Um conselho: tente usar sed
/ awk
e, em vez de vi
, para essa finalidade
Este é um exemplo do uso do vim para criar versões em HTML de arquivos com o vim:
for f in *.c; do
vim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" "$f"
done
Você pode usar ex
, que vem com o vim e é a ferramenta de linha de comando do vim.
A resposta de Eran está definitivamente correta, mas eu pessoalmente uso ex -c
( vim -c
também é possível):
> echo asdf > blub
> ex blub -c "normal a_" -c "normal l.l.l." -c wq
> cat blub
a_s_d_f_
Esta é a minha maneira preferida, porque não há vários arquivos.
Se você remapear para jj (por exemplo), você pode facilmente fazer declarações normais mais complicadas:
ex file -c "normal a_jjl.l.l." -c wq
Para sua informação: