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

map*_*sai 59 debian utf-8 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
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*sen 57

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


根据VT100用户指南,表3-9:特殊图形字符,当选择"特殊图形集"时,x用于绘制"垂直条"并q用于绘制"水平线 - 扫描5".

terminfo下,VT100特殊图形字符作为备用字符集功能的一部分提供; 请参见terminfo(5)手册页的"Line Graphics"部分.


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

所述TMUX CHANGES文件指示一些终端仿真器(例如腻子)不尊重ACS控制序列,当他们在UTF-8模式.因此,tmux 1.4有一个更改,当附加客户端指定它可以处理UTF-8时(即在附加,-u给定或UTF-8存在于LC_ALL,LC_CTYPE或LANG中时),它总是使用UTF-8字符而不是ACS序列; utf8window选项是关于tmux应该从它运行的程序中得到什么,而不是它可以发送到附加客户端的内容.

Debian"squeeze"只包含tmux 1.3,所以你的tmux可能没有"首选的UTF-8线条绘图"功能(除非它从后端源提取).

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

set-option -ga terminal-overrides ',*:enacs@:smacs@:rmacs@:acsc@'
Run Code Online (Sandbox Code Playgroud)


rka*_*see 56

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

远程字符集设置为" 使用字体编码 "对我来说很有用.

  • rkallensee你的解决方案适合我.谢谢. (2认同)

jav*_*onk 39

尝试在putty设置中的Window - > Translation下将字符集设置为"UTF-8"和"Use Unicode line drawing code points".

  • 对我来说,我不得不将Putty使用的字符集切换为UTF-8. (10认同)
  • 修复了我一直遇到的类似问题,但是使用了不同的字符(带有重音符号的a),而不是q作为非线字符. (3认同)

ren*_*een 14

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

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

  • 作为参考,`tmux -u`强制tmux以UTF-8模式运行.默认情况下,它将尝试根据终端提供的区域设置环境变量进行检测.PuTTY似乎传递了错误或格式错误的UTF-8变量,因此`-u`只是忽略了这一点. (6认同)
  • tmux -u帮了我大忙(cygwin mintty,mosh 1.4.2和tmux) (2认同)

Pav*_*uva 10

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

PuTTY 翻译设置


小智 7

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

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

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

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

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

PuTTY Change Settings - > Window - > Translation - > Remote Character Set - > Use font encoding

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