/east-asian-ambiguous-width

LANG=en_US.UTF-8, rxvt-unicode + emacs (non-window) + ddskk での読み書きを想定したcharmapsとchar-width-tableの設定用Lispコードを置きます。view-hello-fileで表示が崩れないようにキリル文字などを半角にし、モードのマーカー(▽▼■)を含む一部の記号を全角にしました。VL Gothic以外のフォントだとかえって表示が崩れる可能性があります。

Primary LanguageHTML

east-asian-ambiguous-width

charmaps

settings/charmaps/UTF-8-EAW-FULLWIDTH.gzで、文字幅をロケール依存ではなく私の好みに置き換えてしまいます。

UTF-8.gzとの差分をsettings/charmaps/UTF-8-EAW-FULLWIDTH.gz.diffに出力してあります。

使い方

  1. charsetファイルUTF-8-EAW-FULLWIDTH.gz/usr/share/i18n/charmaps/に配置します。
  2. /etc/locale.genでロケールに対するcharsetとしてUTF-8-EAW-FULLWIDTHを設定します。
  3. locale-genを実行します。
$ ls /usr/share/i18n/charmaps/UTF-8-EAW-FULLWIDTH.gz
/usr/share/i18n/charmaps/UTF-8-EAW-FULLWIDTH.gz
$ grep FULLWIDTH /etc/locale.gen
en_US.UTF-8 UTF-8-EAW-FULLWIDTH
ja_JP.UTF-8 UTF-8-EAW-FULLWIDTH
$ sudo locale-gen
Generating locales (this might take a while)...
  en_US.UTF-8-EAW-FULLWIDTH... done
  ja_JP.UTF-8-EAW-FULLWIDTH... done
Generation complete.

参考

Cygwin

settings/cygwin/mintty_force_use_xcwidth.diffにあるように、minttyのソースコードにおいて文字幅をロケール依存ではなく私の好みに置き換えてしまいます。

emacs

settings/emacs/output/my-utf-8-eaw-fullwidth.elで、文字幅をロケール依存ではなく私の好みに置き換えてしまいます。

wsl-terminal

minttyのオプションでは、ロケールをja_JPにしましょう。 Linuxのロケールはen_USでも構いません。