6

Удивительное tree приложений, которое я установил в Debian с помощью apt-get install tree , может выводить его с использованием графики ANSI. Его вывод теперь выглядит так:

.
tqq node_modules
x   tqq coffee-script
x   tqq eco
x   tqq express
x   tqq forever
x   mqq stylus
tqq package.json
mqq src
    mqq daemontest.coffee

Это явно неправильно. Это мои LANG=en_GB.UTF-8 UTF-8 и LC_ALL=C env. PuTTY также ожидает UTF-8. Если я изменю PuTTY на "Использовать кодировку шрифта", то tree -A выглядеть правильно, однако npm list будет сломан и будет выглядеть так:

├── coffee-script@1.2.0
├─┬ eco@1.1.0-rc-3
│ └── strscan@1.0.1
├─┬ express@2.5.5
│ ├─┬ connect@1.8.5
│ │ └── formidable@1.0.8
│ ├── mime@1.2.4
│ ├── mkdirp@0.0.7
│ └── qs@0.4.0
...

Все эти вещи должны работать правильно, поэтому я предполагаю, что мои настройки где-то не так. Может ли кто-нибудь помочь мне настроиться именно там, где?


РЕДАКТИРОВАТЬ: мой env теперь выглядит следующим образом. Проблема все еще там

root@chu:~# env
TERM=putty
SHELL=/bin/bash
SSH_CLIENT=**Censored**
SSH_TTY=/dev/pts/1
USER=root
LS_COLORS=rs=**Removed because wall of text**
PYTHONBREW_ROOT=/usr/local/pythonbrew
MAIL=/var/mail/root
PATH=/usr/local/pythonbrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/root
LANG=en_GB.UTF-8
SHLVL=1
HOME=/root
LANGUAGE=en_US:en
LS_OPTIONS=--color=auto
PYTHONPATH=:/root/pymodules
LOGNAME=root
SSH_CONNECTION=**Censored**
_=/usr/bin/env

1 ответ1

9

Первая проблема в том, что у вас $ LC_ALL установлен в C Если вы установите $ LC_ALL, он переопределит все остальные настройки локали, включая $ LANG. Поскольку локаль "C" использует ISO-8859-1, tree не будет знать о доступности Unicode и попытается переключиться на графическую кодовую страницу VT100 (имеется четыре переключаемых кодовых страницы), что PuTTY отказывается делать, ожидая UTF-8. Чтобы это исправить, прекратите установку LC_ALL в вашей среде, и tree будет использовать графику Unicode.

Вторая проблема в том, что ваша переменная $ LANG неверна - вам не нужно указывать кодировку дважды. Установите LANG=en_GB.UTF-8 чтобы исправить это.

Третья проблема заключается в том, что вы заставляете tree использовать графику VT100. Не используйте опцию -A .

Держите PuTTY настроенным для UTF-8.

(На npm это не влияет, поскольку он жестко запрограммирован на использование графики Unicode независимо от локали.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .