Tmux边界显示为xq而不是行?

我无法获得tmux来显示边界线。 他们正在用x和q创build。 这是一个debian挤压服务器和语言环境设置为en_US UTF8。 我也尝试添加

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

行到.tmux.conf。 似乎没有任何工作。 我不确定这是否是一个语言环境问题。 它在其他服务器上正确显示,但不是debian。 我很欣赏你可以提供的任何提示! 谢谢…

您的terminal仿真程序与tmux (由TERM环境variables在启动/连接到tmux服务器时命名的)之间使用的terminfo数据库条目之间存在一些不匹配。


按照“ VT100用户指南”中的表3-9:特殊graphics字符 ,当select“特殊graphics集”时, x用于绘制“垂直线”, q用于绘制“水平线 – 扫描5”。

terminfo下 ,VT100特殊graphics字符可作为替代字符集function的一部分; 请参见terminfo(5)手册页的“Line Graphics”部分。


可能(在您的Debian服务器上)有效的terminfo数据库条目表明ACS可用,但是您的terminal仿真程序实际上并没有响应指定的控制序列。

tmux CHANGES文件指出某些terminal仿真程序(如Putty)在UTF-8模式下不遵守ACS控制序列。 因此,当附加客户端指定它可以处理UTF-8时(即,当附加时, -u被给定或LC_ALL中存在UTF-8时, tmux 1.4有一个改变,使得它总是使用UTF-8字符而不是ACS序列) LC_CTYPE或LANG; utf8窗口选项是关于tmux应该从它运行的程序应该期望什么,而不是它可以发送到连接的客户端)。

Debian的“squeeze”只包含了tmux 1.3 ,所以你的tmux可能没有“偏好UTF-8的线条绘制”function(除非它从后端来源提取)。

如果无法修复terminal仿真器,也不能升级到至lesstmux 1.4,那么可以使用tmuxterminal-overrides选项来取消与ACS相关的function,以便tmux将回退到ASCII线路绘图。 在您的.tmux.conf (在Debian系统上):

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

当连接到在Debian Squeeze机器上运行的tmux时,我遇到与PuTTY和Windows 8相同的问题。 即使在PuTTY中将字符集设置为UTF-8(在“窗口”>“转换”>“远程字符集”下的设置中),我也没有得到正确的线条图。

设置远程字符集为“ 使用字体编码 ”为我做了诡计。

尝试在您的腻子设置中的窗口 – >翻译下设置字符集为“UTF-8”和“使用Unicode线条代码点”。

在Linux 12.04机器上启动tmux时,我遇到了与Putty相同的问题。 即使在PuTTY中将字符集设置为UTF-8(在“窗口”>“翻译”>“远程字符集”下的设置中)也不能解决问题。

使用-u选项启动tmux( tmux -u

我把Putty的terminal设置改为Latin-1,似乎解决了这个问题。

我跑遍了各种各样的build议,包括:

  • 在PuTTY中确认locale和UTF-8设置
  • 导出NCURSES_NO_UT8_ACS = 1
  • 手动尝试各种字体和PuTTY翻译select

以上没有工作。 对话显示器显示qqqq …和xxxx各种angular落字符。

将所有的对话调用改为包含–ascii-lines是一个选项,但是会涉及到很多脚本的改变。

最好的build议是将远程字符集更改为使用字体编码。

PuTTY更改设置 – >窗口 – >翻译 – >远程字符集 – >使用字体编码

保留所有其他PuTTY设置默认值。

在windows / putty下,你使用的字体必须有字符才能显示设置翻译“UTF-8”和“Use Unicode line drawing code points”,字体为“courier-new”,这些问题大部分都会消失