tmux:窗格分隔线显示终端之间的差异

时间:2012-05-09 23:08:42

标签: terminal tmux

我正在切换终端应用程序,从OSX的Terminal.app切换到谷歌浏览器Secure Shell app,并且tmux窗口中窗格之间的界线分割方式从一个终端变为另一个终端。

在Terminal.app中,分界线只是一行:

在Secure Shell中,分隔线呈现为q s:

的一行

我可以想到三种可能的情况:

  1. 这是我可以在我的shell中修复的设置。
  2. 这是我可以从Secure Shell的首选项中修复的设置。
  3. 这是Secure Shell首选项尚不支持的设置。
  4. 但我不确定它是什么。如果是第3种情况,我会很乐意破解它,但是我不确定显示行与q的责任是什么,所以我无法立即开始谷歌搜索和学习什么需要做。

3 个答案:

答案 0 :(得分:3)

您的终端模拟器(Google Chrome Secure Shell )不支持备用字符集(ASC)功能,该功能由连接到的TERM环境变量指定的terminfo数据库条目公布。 (或开始)您的 tmux 会话。

Chromium项目有an issue有关Chrome应用使用的终端模拟器中的字符集支持。


根据VT100 User Guide, Table 3-9: Special Graphics Characters,当选择“特殊图形集”时,q用于绘制“水平线 - 扫描5”。

terminfo 下,VT100特殊图形字符作为备用字符集(ACS)功能的一部分提供;请参阅terminfo(5) man page的“线图形”部分。


如果您使用 tmux 1.4或更高版本,并且Google Chrome Secure Shell 支持UTF-8,那么您应该能够获得UTF-8线条绘制字符将-u提供给 tmux 客户端(或者当您运行 tmux 客户端时,将UTF-8存在于LC_ALL,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数据库条目(由terminal-overrides调整)不会宣传ACS功能。

注意:在配置更改生效之前,您基本上需要重新启动 tmux 服务器(退出所有会话)。

答案 1 :(得分:3)

我有同样的问题(Putty)并通过使用以下命令

更改LANG环境变量来修复它
export LANG="en_US:en"

然后我运行tmux并且线条正确显示

希望有所帮助

答案 2 :(得分:1)

Secure Shell目前不进行线条绘制字符。他们很快就会加入