我正在切换终端应用程序,从OSX的Terminal.app到谷歌Chrome
Secure Shell app,并且tmux窗口中窗格之间的分界线从一个终端变为另一个终端.
在Terminal.app中,分界线就是这样一条线:
在Secure Shell中,分隔线呈现为qs行:
我可以想到三种可能的情况:
>这是我可以在我的shell中修复的设置.
>这是我可以从Secure Shell的首选项中修复的设置.
>这是Secure Shell的首选项尚不支持的设置.
但我不确定它是什么.如果是第3种情况,我会很乐意破解它,但是我不确定显示行与qs的责任是什么,因此我无法立即开始谷歌搜索并了解需要做什么.
解决方法
您的终端模拟器(Google Chrome Secure Shell)不支持备用字符集(ASC)功能,该功能由连接到(或启动)tmux会话时生效的TERM环境变量指定的terminfo数据库条目公布.
Chromium项目有关于Chrome应用程序使用的终端仿真器中的字符集支持的an issue.
根据VT100 User Guide,Table 3-9: Special Graphics Characters,当选择“特殊图形集”时,q用于绘制“水平线 – 扫描5”.
在terminfo下,VT100特殊图形字符作为备用字符集(ACS)功能的一部分提供;请参阅terminfo(5) man page的“线图形”部分.
如果您使用的是tmux 1.4或更高版本,并且Google Chrome安全外壳支持UTF-8,那么您应该能够通过向您的tmux客户端提供-u(或通过在LC_ALL中使用UTF-8)来获取UTF-8线条绘制字符,当您运行tmux客户端时,LC_CTYPE或LANG).
或者,您可以配置tmux以取消设置与ACS相关的terminfo功能(在〜/ .tmux.conf中):
# Google Chrome Secure Shell does not (yet) support ACS; do not use it (for now). set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'
如果连接的客户端不支持UTF-8,则tmux将回退到ASCII线条图(例如 –,|和),其TERM的terminfo数据库条目(由终端覆盖调整)不会通告ACS功能.
注意:在配置更改生效之前,您基本上需要重新启动tmux服务器(退出所有会话).