6

Я использую Консоль 2 для запуска оболочки Bash msysgit в Windows. Когда я ssh к серверу (сервер SLES или RHLE) и делаю ls или использую vi я не получаю никаких цветов. Тем не менее, цвета работают правильно, если я использую PuTTY. Я не делал никаких настроек цвета в Console 2, Bash или PuTTY, а цвета на серверах (насколько мне известно) не менялись вообще.

После чтения iTerm2 теряет цвета «ls», если я ssh на сервер, я пробовал ls --color=always и это отображает некоторые цвета, но не все. Он показывает цвета исполняемого файла и папки (зеленый и синий соответственно в моем случае), но не zip-файлы (должен быть красным в моем случае). Опять же, PuTTY отображает их правильно.

Создание псевдонимов для нескольких команд, для которых я хочу цвет, не является для меня реальным решением, поскольку я регулярно обращаюсь к десяткам различных серверов, и это взаимодействует с тем, как другие администраторы используют эти серверы.

Есть идеи?

2 ответа2

3

Console2 - это "настоящий" консольный эмулятор, но PuTTY запускает приложения через каналы.

Это означает, что когда ssh обнаруживает "нет консольного окна" (каналы), он переключается на использование escape-последовательностей ANSI для отображения цветов. Но стандартная консоль Windows не поддерживает escape-коды, поэтому, когда ssh обнаруживает ее (и Console2 соответственно), она думает, что ANSI недоступен, и переключается на использование win32 API, реализация которого, как мне кажется, намного хуже.

Я знаю два инструмента, выводящих ANSI на консоль Windows - ANSICON и мой собственный ConEmu, но msys не знает о них и не может обнаружить возможности ANSI.

Однако у меня есть некоторые мысли по этому поводу - как обмануть определенные приложения, которые они запускают в трубе терминала (PTY).

3

Я считаю, что вы ищете переменную окружения LS_COLORS. У этой статьи есть хорошая статья: http://www.bigsoft.co.uk/blog/index.php/2008/04/11/configuring-ls_colors

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