bash スクリプト内から vim マクロを実行する

bash スクリプト内から vim マクロを実行する

bash スクリプトでファイルを編集したいのですが、vim でマクロを記述し、それを保存して、bash スクリプトで呼び出す方法はありますか?

答え1

問題ありません。vi コマンドを使用してマクロ ファイルを作成します。例:

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

そして実行するvi -s macro_file data_file

アドバイス:この目的のためには、sed/awkと の代わりにを使ってみてください。vi

答え2

これは、 vim を使用してファイルの HTML バージョンを作成する例です。

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

答え3

exvim に付属しており、vim のコマンドライン ツールである を使用することもできます。

Eran さんの答えは間違いなく正しいですが、私は個人的にはex -c(vim -cも可能です ) を使用します。

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

複数のファイルが存在しないため、これが私の推奨する方法です。

たとえば、エスケープを jj に再マップすると、より複雑な通常のステートメントを簡単に作成できます。

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

ご参考までに:

  • 普通通常モードで手紙を送る
  • ワクプログラムを終了する
  • 複数のコマンドを 1 つの文字列で送信するには (追加の -c オプションなし)、パイプ文字 | を使用します。ただし、これは通常の場合には機能しません。
  • これは 10 個の -c に対してのみ機能します。ただし、より多くのコマンドの場合は、ファイルを作成することをお勧めします。

関連情報