73

我无法让 tmux 显示边框线。它们是用 x 和 q 创建的。这是一个 debian 压缩服务器,语言环境设置为 en_US UTF8。我也尝试添加

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

到 .tmux.conf 的行。似乎没有任何效果。我不确定这是否是语言环境问题。它在其他服务器上正确显示,但不是 debian。我很感激你能提供的任何建议!谢谢...

4

11 回答 11

69

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

远程字符集设置为“使用字体编码”对我有用。

于 2014-10-17T13:59:33.173 回答
60

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


Per the VT100 User Guide, Table 3-9: Special Graphics Characters , when the “special graphics set” is selected, xis used to draw the “Vertical bar” and qis used to draw “Horizo​​ntal line - Scan 5”.

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


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

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

Debian “squeeze” 只包括tmux 1.3,所以你的tmux可能没有“prefer UTF-8 line drawing” 特性(除非它从一个反向移植源中提取)。

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

set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'
于 2011-12-13T06:57:52.083 回答
39

尝试在腻子设置中的 Window -> Translation 下将字符集设置为“UTF-8”和“使用 Unicode 画线代码点”。

于 2012-05-08T14:52:22.707 回答
17

在 Linux 12.04 机器上启动 tmux 时,我遇到了与 Putty 相同的问题。即使在 PuTTY 中将字符集设置为 UTF-8(在 Window > Translation > Remote character set 下的设置中)也不能解决问题。

使用 -u 选项启动 tmux 可以解决问题 ( tmux -u)

于 2015-02-05T14:18:25.160 回答
11

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

PuTTY 翻译设置

于 2020-03-10T00:33:01.040 回答
7

我浏览了各种各样的建议,包括:

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

上面没有工作。对话框显示带有各种角字符的 qqqq... 和 xxxx。

将所有对话框调用更改为包括 --ascii-lines 是一种选择,但它会涉及大量脚本更改。

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

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

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

于 2017-01-09T18:34:36.453 回答
4

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

于 2015-08-13T14:39:50.880 回答
3

如果您使用的是KiTTY,则在 Windows -> 翻译选项卡下有一个复选框,称为“允许 UTF 中的 ACS 线图”。需要检查:

在此处输入图像描述

于 2018-11-26T23:55:56.797 回答
2

locale.conf对我来说,问题是我在设置这个 Arch Linux 机器时忘记了创建文件。下面一行解决了这个问题,用你自己的语言代替。我不需要重新启动。

echo "LANG=en_US.UTF-8" > /etc/locale.conf 
于 2018-01-04T19:02:38.840 回答
1

在 windows/putty 下,您使用的字体必须有字符才能显示设置翻译“UTF-8”和“使用 Unicode 线图代码点”,字体为“courier-new”,大多数问题都消失了

于 2014-05-23T16:14:37.917 回答
0

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

  • Lucida sans 不显示 UTF-8 线条图,只有 - + | (管)替代
  • Courier New Bold 做水平线但是 | 替代垂直
  • Courier New Normal 做到了。
于 2019-09-18T13:35:06.933 回答