Führen Sie ein vim-Makro in einem Bash-Skript aus


8

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

Antworten:



2

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

2

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

Erans Antwort ist definitiv richtig, aber ich würde sie 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 mein bevorzugter Weg, da es nicht mehrere Dateien gibt.

Wenn Sie Escape beispielsweise jj neu zuordnen, können Sie leicht kompliziertere normale Anweisungen machen:

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

Für Ihre Information:

  • normal sendet Briefe im normalen Modus an
  • wq beendet das Programm
  • Verwenden Sie das Pipe-Zeichen |, um mehrere Befehle in einer Zeichenfolge zu senden (keine zusätzliche Option -c). Aber: Das funktioniert im Normalfall nicht.
  • Dies funktioniert nur für 10-c. Für weitere Befehle würde ich jedoch empfehlen, eine Datei zu erstellen.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.