vimをバッチモードで実行して複数のファイルを一気に編集するの巻

スポンサーリンク

全国のvimユーザーの皆さんこんにちは。
今日はvimを使って大量のファイルを一気に編集する方法を学びましょう。

たくさんのファイルを一定の規則に沿って編集する場合、どのようにされてますか?
vim使いの皆さんでしたら、マクロやbufdoを使ったりしていると思いますが、たくさんファイルがあったりするといちいち開くのも面倒だし、複雑な変更だとマクロを作るのも結構面倒ですよね。

そんなときはvimのバッチモードを使って一気に処理しちゃいましょう。
方法は、「編集コマンドををファイルに記述して-sオプションで読み込ませて実行する!」

では実際にやってみましょう。(注 Windowsを対象に説明しています)

編集したいテキストファイルがworkフォルダーの中に入っているとします。
ファイルの中の”hoge”を”fuga”に変更します。
用意するスクリプトファイルchange.vimはこんな感じ。

:bufdo %s/hoge/fuga/g
:wa
:quit

※quitの後ろに改行を忘れずに

コマンドプロンプトからおもむろに、えいっ!と実行

vim -s change.vim work\*.txt

※あらかじめvim.exeにパスを通しといてね

テキストの”hoge”が”fuga”に変わったと思います。

もう一つこんどは、テキストの最後の行にタイムスタンプを挿入します。
change.vimはこんな感じ。

:bufdo exe “normal Go\<c-r>=strftime(\”%c\”)\<cr>\<esc>”
:wa
:quit

※quitの後ろに改行を忘れずに

全てのテキストの最終行にタイムスタンプが入りましたか?

それでは皆さんまた会いましょ~う!
Let’s Enjoy Vim Life!

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする