vimでディレクトリ内の全ファイルの文字コードを変換する
以前、vimでEUCやShift_JISで書かれたファイルをUTF-8に変換するという記事を書いた。
あるプロジェクトで、Javaのソースファイルが全てShift-jisで書かれていて困った。
数十ファイルを1つずつvimで開いていくのは面倒なので、方法を調べたら簡単にできたのでメモしておく。
1.ファイルを複数同時に開く
開きたいファイル名を並べてもできるけど、正規表現で開ける
$ vim *.java
この状態で「:args」と打つと、argument list一覧を見られる
2.開いている全ファイルの文字コードに変更を適用する
:argdo e ++enc=sjis | set fenc=utf-8 | update
:argdoでargument list全てにコマンドが実行される
vimコマンドでは、パイプを使うことで連続でコマンドを実行することができる。
e ++enc=sjis で元のエンコードでファイルを開き直した後、
set fenc=utf-8 でファイルのエンコードをセット、
update で変更があれば書き込み
を行なっている。と思う。
updateコマンドについては自身が無い。無いとエラーが出る。
これにて一件落着。
参考にさせていただいた記事
Vimで複数ファイルを纏めて編集する
Hack #11: argument listを利用して複数のファイルを取り扱う