1. ホーム
  2. utf-8

Tmuxのボーダーが線ではなく、x qで表示される?

2023-12-05 01:06:57

質問

tmux で境界線を表示させるのに苦労しています。 これは debian squeeze のサーバで、ロケールは en_US UTF8 に設定されています。また

# instructs tmux to expect UTF-8 sequences
setw -g utf8 on
set -g status-utf8 on

の行を.tmux.confに追加してください。 何をやってもうまくいかないようです。 ロケールの問題なのか、よくわかりません。 他のサーバーでは正しく表示されるのですが、debianでは表示されません。 何かヒントがありましたら、教えてください。 ありがとうございます...

どのように解決するのですか?

お使いの端末エミュレータと terminfo で使用されているデータベースエントリと tmux (を起動/アタッチしたときに環境変数TERMで指定されたもの)。 tmux サーバーに起動/接続したときに TERM 環境変数で指定されるもの)。


につきまして VT100 ユーザー ガイド、表 3-9: 特殊なグラフィック文字 , 「特殊なグラフィックセット」が選択されている場合。 x は "Vertical bar "を描くのに使われ q は「横線-スキャン5」を描画するために使用されます。

下図 終端情報 では、VT100 の特殊なグラフィック文字が代替文字セット機能の一部として利用可能です。 terminfo(5) マニュアルページ .


おそらく (あなたの Debian サーバでは) 有効な 終端情報 データベースのエントリは ACS が利用可能であることを示していますが、 端末エミュレータは指定された制御シーケンスに実際には応答していません。

この場合 tmux 変更 ファイルは、一部のターミナルエミュレータ (例: Putty) が UTF-8 モードのときに ACS 制御シーケンスを尊重しないことを示すものです。そのため tmux 1.4 では、アタッチするクライアントが UTF-8 を扱えることを指定した場合 (すなわちアタッチする場合)、ACS シーケンスの代わりに常に UTF-8 文字を使うように変更されました。 -u が指定された場合や UTF-8 が LC_ALL、LC_CTYPE、LANG のいずれかに存在する場合。 utf8 ウィンドウのオプションは、何について tmux が実行するプログラムから何を期待するかということであり、接続されたクライアントに何を送ることができるかということではありません)。

Debian の「squeeze」は以下のものだけを含みます。 tmux 1.3 のように、あなたの tmux は、おそらく「UTF-8 の線引きを優先する」機能を備えていません。 バックポート ソースから取得しない限り)。

もし、ターミナル・エミュレータを修正したり、少なくとも tmux 1.4 を使うことができるかもしれません。 tmux 's terminal-overrides オプションを使用して ACS 関連の機能を解除することにより tmux が ASCII 線画にフォールバックするようにします。あなたの .tmux.conf を追加してください (Debian システムの場合)。

set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'