【问题标题】:Tmux borders displayed as x q instead of lines?Tmux 边框显示为 x q 而不是线条?
【发布时间】:2012-01-19 00:09:38
【问题描述】:

我无法让 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。我很感激你能提供的任何建议!谢谢...

【问题讨论】:

    标签: utf-8 debian tmux


    【解决方案1】:

    如果您有 Putty 0.73 或更高版本的打开设置,请展开窗口类别,然后选择翻译。勾选 'Enable VT100 line drawing even in UTF-8 mode':

    【讨论】:

    • 感谢您的回答!它帮助我解决了这个问题。
    【解决方案2】:

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

    • Lucida sans 不显示 UTF-8 线条图,只有 - + | (管道) 替换
    • Courier New Bold 有水平线,但 | 替换垂直
    • Courier New Normal 做到了。

    【讨论】:

      【解决方案3】:

      如果您使用KiTTY,则在 Windows -> 翻译选项卡下有一个复选框,名为“允许以 UTF 格式绘制 ACS 线图”。需要检查:

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          我提出了各种各样的建议,包括:

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

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

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

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

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

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

          【讨论】:

          • 如果上述解决方案对您不起作用,请尝试在连接到服务器时打开设置并检查配置是否已正确应用。如果不是,则重新应用更改,保存配置,如果打开则退出 tmux,然后再次打开 tmux。
          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

            • tmux -u 帮了我大忙(cygwin mintty、mosh 1.4.2 和 tmux)
            • 作为参考,tmux -u 强制 tmux 以 UTF-8 模式运行。默认情况下,它将尝试根据终端提供的语言环境变量进行检测。 PuTTY 似乎传递了不正确或格式错误的 UTF-8 变量,因此 -u 只是忽略了这一点。
            【解决方案8】:

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

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

            【讨论】:

            • 我在 Windows 8 机器上遇到了这个问题。你的建议解决了这个问题。谢谢!
            • 它也适用于我,评分较高的答案适用于 centos 6,7,但适用于 ubuntu16.04,这是有效的答案。
            • 这对我有用,而更高的建议却没有。
            • 注意需要分离(Crtl+b d)并附加(tmux a)才能让更改生效。
            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

              您的终端仿真器与 tmux 使用的 terminfo 数据库条目之间存在一些不匹配(当您启动/附加到tmux 服务器)。


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

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


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

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

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

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

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

              【讨论】:

              • 感谢所有提示...您是正确的!我没有继续尝试修复安装,而是升级到 1.5 并修复了字符问题。现在看起来很棒:)
              • 在 Debian Squeeze 上为我工作,将 q 变为 - 并将 x 变为 |。
              • 在 Squeeze 上也为我工作。从 backports 安装 tmux 的命令是 sudo apt-get -t debian-backports install tmux
              • squeeze 目前有 tmux 1.6。我遇到的问题是客户端总是使用 ASCII,这不起作用。我将其设置为UTF-8,一切顺利。
              • +1 用于说明 Putty 不支持 ACS+UTF。 Kitty(Putty fork/enhancement)有一个允许这个选项(默认情况下似乎未选中)。为我解决了类似的问题。
              【解决方案11】:

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

              【讨论】:

              • 修复了我一直遇到的类似问题,但使用不同的字符(带有重音符号的 a)而不是 q 作为非行字符。
              • 对我来说,我不得不将 Putty 使用的字符集切换到 UTF-8。
              猜你喜欢
              • 1970-01-01
              • 2023-04-04
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-08-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多