FreeBSDをUTF-8環境に

仕事で使うRHELやCentOSはUTF-8設定がされてるし、ブログツールやCGIもイマドキはUTF-8で書いてあるものが増えてきた。

そこで、自前サーバ(FreeBSD 7-STABLE)の日本語環境をUTF-8にしてしまいたいという欲求がムクムクと沸いてきたので作業開始。

「ちょっと切り替えてみようか」なんて軽く考えてはじめたんだけど、案の定、環境変数をちょっと変更するだけ、なんて安直なことだけでは終わらないようだ。Linuxディストリビューションも最初に切り替えるときは苦労したんだろうなぁ。

それはともかく、どのみちXはつかってないので、PuTTYからUTF-8設定で接続した状態で、CGIやPHPのソースを読み書きするときにiconvやnkfで変換しなくて良い、という程度の部分をゴールに設定して作業開始。

○環境変数の設定

自分はFreeBSDには標準で入っているtcshを利用している。会社の上司はLinuxでほぼ標準であるbashのほうが楽らしい。俺はFreeBSDを触ってる時間のほうが多いからcsh/tcshのほうが楽かなぁ。

それはともかく、~/.cshrcのLANG変数を、下記のように設定する。

setenv  LC_CTYPE        ja_JP.UTF-8
setenv  LANG    ja_JP.UTF-8

設定ファイルを読み込んで環境変数を再設定すると、dateコマンドの表示などが日本語になってるはず。

○日本語のソース/テキストファイルを読む

つぎに日本語のファイルを読む方法。コンソールで日本語のファイルを表示するときはjlessを使うのが昔からの定番だったけど、環境変数JLESSCHARSETをutf-8に設定しているとコアダンプしてしまう。

由緒正しいFreeBSD使いならばここでソースを追いかけるんだろうけど、「Web用プログラム以外は調べない」というポリシーの自分としてはとっととあきらめて検索サイトへ。

結果、イマドキはlvというツールを使うのがよいらしい。portsではjapaneseカテゴリではなく、misc/lvになっていた。

lvをインストール後、またもや.cshrcを編集してlessのエイリアスをlvへ。これでいつものようにlessと入力してしまっても安心。問題なく日本語のCGIソースも表示できて大満足。

○viをUTF-8対応に

次はソース編集のためのエディタをUTF-8対応にする。

世の中には高機能なエディタがたくさんあるけど、自分の場合はなぜかviを使っている。PHPやCGIのソースを書くのに便利なエディタは星の数ほどあるんだけど、なぜだろう?これで満足してるってことは、あんまり凝ったソースを書いてないって事なのかなぁ。

viにもいろいろなクローンがあって一長一短なんだけど、自分は最近のLinuxでも標準で入っているvimを使用中。

Portsの「/usr/ports/editors/vim」ディレクトリに移動してインストールすればおしまい。

vimの設定ファイルは、~/.vimrc となる。このファイルを開き(あるいは新規作成し)、下記の行を追加する。

set encoding=utf-8

「set」コマンドではほかにもいろいろな設定が出来るので、ヘルプやマニュアル、解説サイトをチェックするのがお奨め。

こんな感じでプログラムのソースをUTF-8で書けるようになった……はずなのに、仕事が忙しくて趣味のプログラムが書けない日々。