平衡点
2017/09/12
_ 続: tmux でのEAWの扱い
sid の tmux が 2.6~rc3-1 に上がったので, 状況を調べてみた.
前提
こちらの希望は
- East Asian Ambiguous Character は二文字幅で生活したい
- なるべく修正は少ない方が良い.
といった塩梅.
罫線素片の扱い
yanma(@yanma)さん | Twitter が tmux の upstream に request を投げて, 状況が改善された. 素晴しい.
というわけで, 設定ファイルに
set -ag terminal-overrides ',*:U8=0'
と書いておくと border に罫線素片が使われる.
とはいえ, VTE を利用している端末は, 罫線素片を再度 Unicode Box drawing char に置き換えるので, 例えば gnome-terminal なんかでは幸せになれません. 皆さん rxvt-unicode を使おう(違.
冗談はさておき, VTE を使っている端末の場合には, どうするのが良いのだろうねぇ...
文字幅の扱い.
あいかわらず, 文字幅の計算は LANG=en_US.UTF-8 決め打ちなのだが, これには明確な理由があるのだろうか....
やっぱり安直な方法はロケールを強制すること, です. その際に ja_JP.UTF-8 だけじゃなく, en_US.UTF-8 も置換しておくと Debian の提供するパッケージに手を入れる必要はなくなります(が, 副作用があるかもね).
- hamano/locale-eaw: East Asian Ambiguous Width問題と絵文字の横幅問題の修正ロケール
- fumiyas/wcwidth-cjk: Run command with CJK-friendly wcwidth(3) to fix ambiguous width chars
- uwabami/locale-eaw-emoji: UAX#11 Ambiguous と UTR #51 Emoiji を全角とする修正 locale
のどれかお好きな奴を使いましょう(一番下は私が作っている/使っている奴です).
まとめ
以前は patch を当ててました.
- tmux v2.4 で en_US.UTF-8 決め打ちを止める.ロケールの修正か wcwidth-cjk を使うことを前提とする
- tmux v2.4 で 罫線描画を全て ASCII とする patch. 代替文字として良いのがあったら教えて下さい
今回の更新で, 少なくとも rxvt-unicode を使っているならば,
tmux.conf に設定を追加
set -ag terminal-overrides ',*:U8=0'
- locale の修正
で良くなりました.
あとは gnome-terminal みたいな VTE を使っている奴ですね. どうするのが良いかな...