tree
我在 Debian 中安装了awesome 应用程序,apt-get install tree
它具有使用 ANSI 图形绘制输出的选项。它的输出现在如下所示:
。 tqq 节点模块 x tqq 咖啡脚本 x tqq 生态 x tqq快递 x tqq 永远 x mqq 触控笔 tqq 包.json mqq 源码 mqq 守护进程测试.coffee
这显然是错误的。这些是我的LANG=en_GB.UTF-8 UTF-8
和LC_ALL=C
环境变量。PuTTY 也设置为 UTF-8。如果我将 PuTTY 更改为“使用字体编码”,则tree -A
看起来正确,但是npm list
会中断并看起来像这样:
├──[电子邮件保护] ├─┬[电子邮件保护] │ └──[电子邮件保护] ├─┬[电子邮件保护] │ ├─┬[电子邮件保护] │ │ └──[电子邮件保护] │ ├──[电子邮件保护] │ ├──[电子邮件保护] │ └──[电子邮件保护] ...
这些东西都应该正常工作,所以我猜我的设置有些地方不对。有人能帮我看看到底是哪里不对吗?
编辑:我的env
现在看起来像这样。问题仍然存在
root@chu:~# 环境 TERM=putty 外壳=/bin/bash SSH_CLIENT=**已审查** SSH_TTY=/dev/pts/1 用户=root LS_COLORS=rs=**由于文本墙而被删除** PYTHONBREW_ROOT=/usr/local/pythonbrew 邮件=/var/邮件/root PATH=/usr/local/pythonbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 密码=/root LANG=en_GB.UTF-8 低压侧电压=1 主页=/root 语言=en_US:en LS_OPTIONS=--颜色=自动 PYTHONPATH=:/root/pymodules LOGNAME=root SSH_CONNECTION=**已审查** _=/usr/bin/env
答案1
第一个问题是您将 $LC_ALL 设置为C
。如果你设置了$LC_ALL,它将覆盖所有其他区域设置,包括 $LANG。由于“C”语言环境使用 ISO-8859-1,因此tree
不知道 Unicode 的可用性,并将尝试切换到 VT100 图形代码页(有四个可切换的代码页),而当需要 UTF-8 时,PuTTY 拒绝这样做。要解决此问题,停止在你的环境中设置 LC_ALL并将tree
使用 Unicode 图形。
第二个问题是您的 $LANG 变量不正确– 您不需要指定两次字符集。设置LANG=en_GB.UTF-8
来修复这个问题。
第三个问题是强迫 tree
使用 VT100 图形。请勿使用该-A
选项。
保持 PuTTY 也配置为 UTF-8。
(npm
不受此影响,因为它是硬编码使用 Unicode 图形,而不管语言环境如何。)