taoru's memo

Objective-c,cocos2d,など開発についてのメモ(andoroidも少しだけ)

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を利用して複数のファイルを取り扱う

QLOOKアクセス解析