[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: xterm -cjk_width と utf-translate-[...]
On May 22, 2007, [emacs-w3m:09461],
shinichiro (at stained-g.net) wrote:
> ひょっとして xterm の `-cjk_width' オプションって
> utf-translate-cjk-set-unicode-range の効いた emacs 専用のオプション
> だったりしますか?
いいえ。Vimなら「:set ambiwidth=double」としてみてください。
これは、ターミナルエミュレータとその中で動かすアプリケーションとで、
文字コードを一致させておかなければならない、という一般的な話です。
たとえば、LANG=ja_JP.eucJPなら、通常、アプリケーションは文字を
EUC-JPとして出力して、ターミナルエミュレータはそれをEUC-JPだと解釈
して表示します。
今回問題になっているのは、UTF-8環境(たとえばja_JP.UTF-8)の場合です。
UTF-8では、文字幅が1桁分なのか2桁分なのかはっきりしていない文字があり、
それらについてターミナルエミュレータとアプリケーションとで文字幅を一致
させておかないと表示がずれてしまう、ということです。
たとえば、xterm -cjk_widthと設定無しのEmacs/Vimだと、ターミナルエミュ
レータでの文字表示は2桁分なのに、アプリケーションは1桁分のつもりでカー
ソル移動するので、表示がずれてしまう、ということになります。
文字幅の設定については、localeに従っているもの、変更できないもの、
個別の文字について設定できるもの・できないもの、一括で設定できる範囲
が異なるものなど様々なのが現状では、難しい問題となっています。
--
木下達也