Windows Terminalでtmuxを起動してペイン分割をしたときのペインの境界線が描画されない
jiro4989 opened this issue · 5 comments
いつも愛用しています。ありがとうございます。
HackGenNerd v2.1.1 を使用しています。
Windows TerminalでPowerShellを起動し、PowerShellからvagrantにsshし、vagrantでtmuxを起動した際、以下のようにペインの境界線が描画されないようでした。
Windows TerminalのfontFaceとしては HackGenNerd
として指定しました。
Windows TerminalのfontFaceに Consolas
として指定した場合は、以下のように境界線が描画されました。
また、Git Bashのターミナルからvagrantにsshし、tmuxを起動した場合は、HackGenNerdを指定しても、以下のように境界線が描画されました。
Windows Terminalのドキュメントを確認したところ、デフォルトのフォントはConsolasのようです。
これは、プロファイルで使用されるフォント フェイスの名前です。 これが見つからないか無効である場合は、ターミナルによって Consolas へのフォールバックが試行されます。 既定のフォント Cascadia Mono のその他のバリアントについては、Cascadia Code に関するページを参照してください。
仮にHackGenNerdに、tmuxの罫線文字に該当するフォントが存在しなくても、Consolasフォントにフォールバックされるのであれば罫線が描画されそうに思っています。実際は描画されていないので、少し調べた感じでは原因がわかりませんでした...
Git Bashを使えば描画はされるので当面は困っていません。
お手すきの際にご確認いただけると助かります。
詳細なご報告ありがとうございます!
Windows TerminalのfontFaceとしては HackGenNerd として指定しました。
こちら、 HackGenNerd Console
を指定すると状況に変わりあるでしょうか?
これは推測ですが、 HackGenNerd
指定時の tmux の境界線は、全角の罫線記号が表示されているのではないでしょうか?(マウスで境界線部分を選択状態にすると幅が分かるかと思います)
一方、 HackGenNerd Console
指定時の境界線は、半角になっていませんか?
Windows Terminal では、曖昧幅記号 (ambiguous width characters: 全角幅、半角幅で表示するかが明確に定義されておらず、フォントや文字を表示するアプリケーション側の仕様に任されている記号) が全角だとうまく表示できないといった不具合がある、という情報を見かけたことがあります。
なお、罫線記号 (│
─
┼
など) も、曖昧幅記号の定義に含まれます。
ありがとうございます。
HackGenNerdで確認したところ、おっしゃるとおり、全角幅で描画されているようでした。
以下の文字列をターミナル上で描画してみたところ、幅が全角幅のように見えます。
HackGenNerd Consoleでは半角幅で描画されていました。
echo '─'
こちらのコードポイントを確認したところ、10進数コードポイントは 9472
でした。
こちらは罫線素片の一部のようです。 (罫線素片 - Wikipedia)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
text = u"─"
print(text)
print(ord(text))
$ python3 codepoint.py
─
9472
「HackGenNerd Consoleを使用すれば描画される」ということで、原因がわかりましたので
こちらのissuesはクローズいたします。
早急なご確認ありがとうございました 🙇