Ejecute una macro vim desde dentro de un script bash

Ejecute una macro vim desde dentro de un script bash

En un script bash quiero editar un archivo. ¿Hay alguna manera de escribir una macro en vim, guardarla y luego llamarla en un script bash?

Respuesta1

No hay problema: cree el archivo de macro con comandos vi. Por ejemplo:

:1,$s/a/b/g
:wq

Entonces correvi -s macro_file data_file

Un consejo: intenta usar sed/ awky en lugar de vipara este propósito

Respuesta2

Este es un ejemplo del uso de vim para crear versiones HTML de archivos con vim:

for f in *.c; do
    vim -f +"syn on" +"run! syntax/2html.vim" +"wq" +"q" "$f"
done

Respuesta3

Podrías usar ex, que viene con vim y es la herramienta de línea de comandos para vim.

La respuesta de Eran es definitivamente correcta, pero yo personalmente usaría ex -c( vim -ctambién es posible):

> echo asdf > blub
> ex blub -c "normal a_" -c "normal l.l.l." -c wq
> cat blub
a_s_d_f_

Esta es mi forma preferida, porque no hay varios archivos.

Si reasigna escape a jj (por ejemplo), puede hacer fácilmente declaraciones normales más complicadas:

ex file -c "normal a_jjl.l.l." -c wq

Para tu información:

  • normalenvía cartas en modo normal a
  • wqsale del programa
  • para enviar varios comandos en una cadena (sin opción -c adicional), utilice el carácter de barra vertical |. Pero: esto no funciona en el caso normal.
  • Esto funciona sólo para 10 -c. Pero para más comandos, recomendaría crear un archivo.

información relacionada