サブロウ丸

主にプログラミングと数学

vim 複数ファイル操作

vim で複数ファイルを操作する方法のまとめ

1. 複数ファイルを開く

vim -O abc.txt xyz.txt  # 横向きに表示
vim -o abc.txt xyz.txt  # 縦向きに表示

2. 条件指定で複数ファイルを開く

例えば, .h 拡張子のファイルを全てvimで開きたいとき

vim -O $(ls *.h)

.h 拡張子と.cpp拡張子のファイルを全てvimで開きたいとき

vim -O $(ls *.h *.cpp)

-O の後に開きたいファイルの一覧の出力がされていれば良い.

3. vimで複数ファイルに対し一斉置換

(参考) 【 Vim 】文字列一括置換 ( 複数ファイル編 ) - Qiita
「:args」コマンドで一度に複数のファイルを開く。 — 名無しのvim使い

上記(-o, -O)の方法で全てのファイルを開いたあと

:argdo %s/(変換前)/(返還後)/g

変更内容を保存したい場合は, | updateをつける.

:argdo %s/(変換前)/(返還後)/g | update

ちなみにファイルは(-o, -O)で開かなくとも

:argadd ./*.h
:argadd ./*.cpp

で引数(args)に対象ファイルを登録したあと( 登録されたファイル一覧は:argsで確認できる ) argdoコマンドで同様の処理がされる. むしろこちらが主流のやり方.

4. vimで複数ファイルを閉じる

a (= all) で全ての開いているファイルにコマンドが適用される.

:wqa