我经常使用腻子(http://www.chiark.greenend.org.uk/~sgtatham/putty/)连接到 Ubuntu 盒子(现在是 9.04)。它运行良好,但我无法在 Ubuntu 端弄清楚 Putty 字体、字符编码、字符翻译和终端配置的正确组合,以便终端正确显示所有内容。在运行诸如“screen-profiles”或“w3m”之类的 ncurses 程序时,问题最为明显。方框图字符搞砸了。
有没有人对这种组合感到满意?
我经常使用腻子(http://www.chiark.greenend.org.uk/~sgtatham/putty/)连接到 Ubuntu 盒子(现在是 9.04)。它运行良好,但我无法在 Ubuntu 端弄清楚 Putty 字体、字符编码、字符翻译和终端配置的正确组合,以便终端正确显示所有内容。在运行诸如“screen-profiles”或“w3m”之类的 ncurses 程序时,问题最为明显。方框图字符搞砸了。
有没有人对这种组合感到满意?
尝试导出以下环境变量
export NCURSES_NO_UTF8_ACS=1
这会阻止 ncurses 在 UTF-8 语言环境中使用 VT100“备用字符集”线条绘图字符,并改为使用 Unicode 方框绘图字符。
我能想到的最好的方法是将 Window/Translation 中的 putty 配置更改为 UTF-8,并将 Window/Appearance 中的字体更改为 Lucida Console。
它使大多数字符正确。在“aptitude”中,菜单以线条绘制字符正确勾勒出来,但不是“您确定要退出”弹出对话框。运行像“man ls”这样的命令现在可以正确显示大部分字符,但连字符的单词最终会以一个框代替连字符。
无论如何,这对于在 Emacs 中编程来说已经足够好了。更好的解决方案表示赞赏。
例如,在“UTF-8”中,Putty(或增强的 fork Kitty)都不会尊重切换到 VT100 样式线条绘制模式的请求aptitude
- 这是设计使然(http://www.chiark.greenend.org .uk/~sgtatham/putty/wishlist/utf8-plus-vt100.html)。
但是,如果我们将“连接 > 数据 > 终端类型字符串”设置为“putty”而不是默认的“xterm”,它可以解决问题,因为服务器会调整渲染字符。
我相信这个解决方案比export NCURSES_NO_UTF8_ACS=1
我自己迄今为止使用的更好。
就我而言,它不是 ncurses,也不是腻子。这是语言环境,未设置为 UTF-8 ......
所以locale
调用产生了下面的结果。
$ locale
LANG=en_US
但是,需要的是
$ locale
LANG=en_US.UTF-8
我能够通过
$ sudo locale-gen en_US.UTF-8
$ sudo update-locale LANG=en_US.UTF-8
不要挖掘旧帖子,但KiTTY(PuTTY fork)提供了一个复选框以“允许 ACS 以 UTF 绘制线条”(新/当前会话设置-> 窗口-> 翻译),这似乎适用于 aptitude 等应用程序。我刚刚下载了最新版本的 PuTTY,这个复选框不存在,所以它必须是特定于 KiTTY 的。
关于手头的问题,其他答案没有错;这只是附加环境变量或更改广告终端类型的替代方法。(如果您使用的是 screen/tmux 以及 termcap 是如何参与的,另请参阅https://stackoverflow.com/a/8485457/1011365了解更多信息,尽管仅供参考,我使用的是最新的 tmux 并且仍然需要选中 KiTTY 中的复选框以允许字符正确显示)
我主要使用 Putty 与我的 Ubuntu vm-boxen 进行交互,所以我确实花了一些时间让视觉配置正确。基本上,我将字体设置为 MS Gothic、9pt(用于等宽和日文)、UTF-8 用于接收数据,并将终端类型字符串设置为xterm-256color
. 我不理会大多数终端设置,因为默认设置似乎运行良好。
在 Ubuntu 方面,我设置了LANG=en_US.UTF-8
,aptitude install ncurses-term
附加条款。我通过一个不错的脚本检查终端颜色,并在GNU Screen
会话和GNU Emacs
( M-x list-colors-display
) 中仔细检查。GNU Screen
没有用 256 色选项编译,所以我重新编译它。我通过使用Emacs
( M-x view-hello-file
) 以及tig
一个git
包含 i18n utf-8 日志提交的目录来检查语言。
不幸的是,我仍然得到奇怪的“lqqqqk”东西aptitude
(线条艺术缺失?)但间距仍然正确。按下退格键也会aptitude
插入一个字符,我还没有征服。我还在我的系统上测试了你的命令行 w3m,它看起来不错。我宁愿使用 emacs 中的 w3m。:-)
说实话,我用的是日本的腻子叉,叫做 Gottani(腻子ごった煮版),它对日语的帮助更大,但我认为它非常接近普通的腻子。
另外:我还设置了终端 > 功能 > 禁用远程控制终端调整大小,因为“GNU 屏幕”覆盖了我的窗口大小设置。
以上所有内容均在 Ubuntu 8.04 LTS "Hardy Heron" 上进行了测试。