こいつをbashrcにぶちこんで、viiというコマンドを押せば大丈夫。
bashrc
function vii(){FORMAT=`nkf -g$@`;FORMAT=($FORMAT// /)
vim -c":e ++enc=$FORMAT"$@;}# nkf必須なので、brew install nkfとかyum install nkfしておいてください。
そもそも文字化けって自動対応してくれない
vimにはfileencodingsという、「読み込み時のフォーマット」を指定するオプションがあります。本来vimrcにset fileencodings=utf-8,sjis,euc-jp,latin1
って文を書いとけばとりあえず大丈夫だよ、って話なんですけどこいつザルなので結構失敗します。
「左から順にフォーマット検知→失敗したら右のフォーマットを試す」仕組みなのですが、そもそも文字化けが起こるのってファイルの一部だけだったりするので、Shift-JISなのに「あれ〜?英文ちゃんと成功してるやん・・・こいつutf-8やな!」ってご認識していただくわけです。
なので、ファイル読み込み前にエンコードを検知してやる
それがnkf。nkf -g ファイル名
でエンコードを抜き取ってきます。
そんでvimを開くときにそのエンコードをぶちこんでやるわけです。
これで文字化けしようがありません。きちんとフォーマットに対応して開いてくれます。
注意
エンコードというのは、目的があって使用されてたりします(サーバー古いからeuc-jpみたいな)
セーブするときに間違ってutf-8にしちゃったーって事がおきないよう、もしもvimrcにset fileencoding=
の設定があったら削除しときましょう。
地獄見ます(敗北回数:3回)