Ausführen eines Vim-Makros aus einem Bash-Skript heraus

Ausführen eines Vim-Makros aus einem Bash-Skript heraus

In einem Bash-Skript möchte ich eine Datei bearbeiten. Gibt es eine Möglichkeit, ein Makro in Vim zu schreiben, es zu speichern und es dann im Bash-Skript aufzurufen?

Antwort1

Kein Problem: Erzeugen Sie die Makrodatei mit vi-Befehlen. Beispiel:

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

Dann rennevi -s macro_file data_file

Ein Ratschlag: Versuchen Sie zu diesem Zweck sed/ awkund anstelle von zu verwenden.vi

Antwort2

Dies ist ein Beispiel für die Verwendung von vim zum Erstellen von HTML-Versionen von Dateien mit vim:

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

Antwort3

Sie könnten verwenden ex, das mit vim geliefert wird und das Befehlszeilentool für vim ist.

Erans Antwort ist definitiv richtig, aber ich würde persönlich verwenden ex -c( vim -cist auch möglich):

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

Dies ist meine bevorzugte Methode, da nicht mehrere Dateien vorhanden sind.

Wenn Sie beispielsweise „escape“ auf „jj“ umstellen, können Sie problemlos kompliziertere normale Anweisungen erstellen:

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

Zu Ihrer Information:

  • normalsendet Briefe im Normalmodus an
  • wqbeendet das Programm
  • um mehrere Befehle in einem String zu senden (keine zusätzliche Option -c), verwenden Sie das Pipe-Zeichen |. Aber: Das funktioniert bei normal nicht.
  • Dies funktioniert nur für 10 -c's. Für weitere Befehle würde ich jedoch empfehlen, eine Datei zu erstellen.

verwandte Informationen