基本原則:EUC-JPなターミナル上で動かす
Vzエディターライクな、エディターの使い方 (1)NxEdit の続きです。env LANG=ja_JP.EUC-JP な端末でないと日本語の文字列は正しく表示されない。いずれのターミナルでも同じ。gnome-terminal(ubuntu 14.04 mint17.1 mint17.2RC)については既に述べたので、rxvtの場合を説明する。
rxvt をeuc-jp で起動する。そのためには、たとえば、gnome-terminal で以下のコマンドを発行する。既述のロケール設定は完了していると仮定。
env LANG=ja_JP.EUC-JP urxvt
あたらしいWindowが uxrvt で開くはずだ。 私は zsh。プロンプト文字列「»」としているので、この文字が「損」という漢字プロンプトに置き換わる(文字化けである)。が、環境が変わっていることが容易に確認できるのでそのままにしてある。
- (便利:この1行のみのスクリプトを~/binに設置する。どこからでも、rxvtでEUC-JPな環境になる。また、既に述べたgnome-terminal でのオブジェクト化(アイコン)をrxvtにも適用すれば同じような環境ができあがる。実行文字列は以上の通り。env LANG=ja_JP.EUC-JP urxvt だ。)
このエディターの内部処理とUTF-8の関係
NxEditは、内部処理がEUC-JP。文字コードがEUC-JP形式テキストであればそのまま読み込める。JIS,SJIS形式であればコンバートして読み込む。UTF-8は?
utf-8については、一時しのぎなのかパッチを書いてくださった方がいたのでありがたく利用させていただいている。ちなみに配布ソースとバイナリには実は当初から適用済みでああった。気がついた方はいるだろうか。ソースをみないとわからない。(秘密にするつもりではなかった。自分もほとんど利用していない。euc-jpにコンバートしてから、書き戻す習慣が先にできたので、あまり気にしていなかったのだ)
使い方はいたってシンプルだ。
ne -u utf-8.txt
-u オプションをつけて起動する。(もちろん、env LANG=ja_JP.EUC-JP にしたターミナルでないと化けるので注意)。
動作的には汎用ライブラリである iconv でEUC-JPに変換されてUTF-8が読み書きできるようになる。UTF-8での内部処理になったわけではない。あくまで、EUC-JPな世界のツールであることにかわりはない。"セカイ"は、EUCのままである。
ファイル破壊の可能性はここにもあるのかもしれないし、ないのかもしれない。euc-jpが適切に扱えない文字が混ざると最悪ファイルが壊れる可能性があるらしい。それが何なのかはよくわからない。文字化け"要員"として歴史的に有名なSJIS半角カナチームについては、オリジナルの段階でも対策済みである。ソースにあったと思う。
だが、実際ファイルが壊れたことがあるので、euc環境でもオススメしません。私が期待しているのは、しれっとソース大幅修正してUTF-8化して、githubにあげてくれる人です。