2013年10月10日木曜日

vimrcで set enc=sjis を自動化

数年前からlinuxサーバーは基本的にUTF-8環境で構築して運用している
でも、たまに顧客環境のソースがSJISとかEUCもある

わたしはテキストエディタにvimを使っていて
linuxサーバーにsshログインしてvimでソース編集するのが一番使いやすい。

eucや、sjisを編集する場合は
PCでGUIのエディタ等を使ったりもするが
何よりGUIでいろいろ操作するのが煩わしいし
頻繁にマウスに持ち替えるの煩わしい。
やっぱり使い慣れたvimがいい。

そんなときは端末エミュレータでSJISの設定。
( OSX の ターミナル.app を使っている )

linuxにログイン

$ env
~
LANG=ja_JP.SJIS
~

vim でファイルを開いたあと

:set enc=sjis


で、SJIS編集モードにするか

vimで開くときに

vim -c 'set enc=sjis' hoge.php

とする

これが頻繁にやると結構面倒

sjisオンリーなら.vimrcに設定しておけばいいのだが
utf-8, sjis, euc-jp のソースが混在してるシステムだったりすると
なかなか面倒だ。

ちなみに、euc-jp は set enc= を設定しなくても
文字化けせずvimで開ける

linuxが標準でsjisに対応していないせいか
sjisのコード体系に制御コード?asciiコードを含むために
自動判別しづらいせいなのか
とにかく、sjisは自動判別できてない。

そこで、環境変数LANG で、SJIS環境なら
vim で開くときに set enc=sjis するようにvimrcに設定

$ vim ~/.vimrc
これを追加
if $LANG == 'ja_JP.SJIS'
    set enc=sjis
endif

0 件のコメント:

コメントを投稿