使256色AND线描字符都可以在PuTTY中使用


31

我在使用Ubuntu设置PuTTY时遇到问题。

我正在尝试使行字符适合aptitude以及256色支持,但只能获得其中一个。

  • Ubuntu配置
    • 使用64位Ubuntu
    • 终端类型xterm-256color或putty-256color给出256色,但行字符不正确。
    • 终端类型linux给出了适当的显示行,但是只有16种颜色。
  • 腻子配置
    • 使用带有Unicode字符的字体。(DejaVu Sans Mono)
    • 假定接收到的数据采用UTF-8。
    • 设置为使用Unicode线条图代码点。

来自的输出locale

LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Answers:


42

问题在于,UTF-8模式下的PuTTY会忽略1个 VT100“备用字符集”命令,并且ncurses会尝试使用“图形”字符集来绘制GUI。(方框中的图形字符通常位于相同的位置klmqx。)

export NCURSES_NO_UTF8_ACS=1 对于您的环境,它应该通过告诉ncurses在选择UTF-8语言环境时始终使用Unicode框绘图字符来解决此问题。

1为此有一个PuTTY 愿望清单条目,并解释了为什么当前行为会更好

更新(2018-05-12):看来PuTTY 0.71 支持此组合。


那很有意思。我只是一直使用Lucida Console,因为线条画总是只在UTF-8模式下工作。现在我可以使用更好的字体。谢谢。:)
Ariel

8
我只想指出,通过将备用字符集转换为UTF-8的程序来运行也可以解决此问题。我是从您提供的链接中找到的。最好的示例程序是屏幕。
瑞士人

2
不是要挖掘旧帖子,而是KiTTY -PuTTY分支-提供了“允许UTF进行ACS线图绘制”(新的/当前会话设置->“窗口”->“翻译”)复选框,这似乎与aptitude之类的应用程序很好地兼容。
overprescribed

1
@swiss:不是screen由谁来进行转换,而是由ncurses
Thomas Dickey

我在腻子上工作并使用zsh。我有一个与OP类似的问题,因为在VIM中,某些字符(例如NERDtree中的箭头)没有显示。当我执行“导出NCURSES_NO_UTF8_ACS = 1”并再次打开VIM时,它没有做任何不同的事情。箭头仍然不显示。知道发生了什么吗?
alpha_989

4

现在,这已在PuTTY git master中作为一个选项实现。

腻子0.71->

类别->窗口->翻译->勾选“即使在UTF-8模式下也启用VT100线条图”

屏幕截图

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.