Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

どんな文字化けにも自動対応できるbashスクリプトを5分で作った

$
0
0

こいつを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回)


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>