Tmux边框显示为x q而不是行?

时间:2011-12-13 02:56:39

标签: utf-8 debian tmux

我无法让tmux显示边框线条。它们是用x和q创建的。这是一个debian squeeze服务器,locale设置为en_US UTF8。我也尝试过添加

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

到.tmux.conf的行。似乎没什么用。我不确定这是否是一个语言环境问题。它在其他服务器上正确显示,但不在debian上显示。我很感激您提供的任何提示!感谢...

11 个答案:

答案 0 :(得分:56)

您的终端仿真程序与 tmux 使用的 terminfo 数据库条目之间存在一些不匹配(当您启动/附加到一个时,由TERM环境变量命名的那个) tmux 服务器)。


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

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


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

tmux CHANGES文件表示某些终端仿真器(例如Putty)在处于UTF-8模式时不尊重ACS控制序列。因此, tmux 1.4有一个更改,当附加客户端指定它可以处理UTF-8时(即附加时,-u,它会始终使用UTF-8字符而不是ACS序列)给定或UTF-8出现在LC_ALL,LC_CTYPE或LANG中; utf8窗口选项是关于 tmux 应该从它运行的程序中得到什么,而不是它可以发送给它的内容附属客户)。

Debian “squeeze” only includes tmux 1.3,因此您的 tmux 可能没有“首选UTF-8线条绘制”功能(除非它来自backports来源)。

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

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

答案 1 :(得分:50)

当连接到在Debian Squeeze机器上运行的tmux时,我遇到了与PuTTY和Windows 8相同的问题。即使在PuTTY中将charset设置为UTF-8(在Window> Translation> Remote character set下的设置中),我也没有得到正确的线条图。

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

答案 2 :(得分:38)

尝试在Window - >下将字符集设置为“UTF-8”和“Use Unicode lines drawing points points”。在你的腻子设置翻译。

答案 3 :(得分:12)

在Linux 12.04计算机上启动tmux时,我遇到了与Putty相同的问题。甚至在PuTTY中将字符集设置为UTF-8(在Window> Translation> Remote character set下的设置中)并没有解决问题。

使用-u选项启动tmux实现了技巧(tmux -u

答案 4 :(得分:6)

我跑过了很多建议,包括:

  • 确认PuTTY中的区域设置和UTF-8设置
  • 导出NCURSES_NO_UT8_ACS = 1
  • 手动尝试各种字体和PuTTY翻译选择

上面没有用。对话框显示qqqq ...和xxxx以及各种角落字符。

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

最佳建议是将远程字符集更改为使用字体编码。

PuTTY Change Settings - >窗口 - >翻译 - >远程字符集 - >使用字体编码

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

答案 5 :(得分:6)

如果您具有Putty 0.73或更高的打开设置,请展开“窗口”类别,然后选择“翻译”。选中“即使在UTF-8模式下也启用VT100线条图”:

PuTTY Translation Settings

答案 6 :(得分:3)

我将终端的Putty设置更改为Latin-1,这似乎解决了问题。

答案 7 :(得分:1)

在windows / putty下,您使用的字体必须包含要显示的字符 设置翻译“UTF-8”和“使用Unicode线条绘制代码点”,字体设置为“courier-new”,大部分问题都消失了

答案 8 :(得分:0)

对我来说,问题是当我设置这个Arch Linux框时,我忘了创建一个locale.conf文件。下面的行修正了问题,用你自己的语言代替。我不需要重启。

echo "LANG=en_US.UTF-8" > /etc/locale.conf 

答案 9 :(得分:0)

如果使用的是KiTTY,则在Windows->转换选项卡下有一个复选框,称为“允许UTF进行ACS线图绘制”。需要检查:

enter image description here

答案 10 :(得分:0)

在这里,字体选择似乎是一个令人困惑的因素:

  • Lucida sans仅显示UTF-8线条图--| | | | (管) 替代
  • Courier New Bold做水平线,但| 替代垂直
  • Courier New Normal会全部完成。