体力,気力,ときどき知力

情報系大学院生 兼 HPC系ソフトウェアエンジニアのメモ書き.やったことを貼って後日にコピペ再現するために書いているので新規性・汎用性・芸術性は考えてません.数値計算,高精度演算,SIMD, vim, Linuxなど.

vimで複数ファイルを操作する

似たような(?)スクリプトvimで編集するケースを考えたい.

今回,自分が考えている状況は,グラフを作るgnuplotスクリプトが10種類くらいあって,各々output名とか軸ラベルは異なるけど,余白とかフォントとかは統一したい.余白を変えるのに10種類開いて変えたり,sed書いたりはめんどくさい.

 

前置きとして,まず複数ファイルをvimで開く

vim *.sh

または

vim a.sh b.sh c.sh

そうすると複数ファイルが開かれるので

:files

で一覧を見ることができる.おそらくa.cが最初に参照されているので

:n  次のファイルに進む

:N  前のファイルに戻る

3ctrl-^  3番目のファイルに移動する

で移動とかができる.

 

---[備考]---

最初に開くときに

vim -o a.sh b.sh

とやるとウインドウ分割で開く.縦に割りたいときは-Oで.

-----------------

 

 

開くのは良いとして,本題として全ファイルのhogeをfugaに置換する話.

まずはどのファイルを対象にするのか

:args *.sh

どのファイルが対象になったか確認するには

:args

今回であればa.sh b.sh c.shが出るはず.

これに対して一括置換をやりたければ

:argdo %s/hoge/fuga/g | update

こんな感じ.別に置換じゃなくても実行出来ます.

 

参考URLは以下のとおり.

http://zx.jpn.org/b/20081025/155/vim/vim-mluti-file-replace