Подтвердить что ты не робот

Невозможно включить 256 цветов в ConEmu

Я пытаюсь получить 256 цветов в фантастической ConEmu-Maximus5 консоли.

Обновление: Теперь он отображает только 8 цветов. Я знаю, потому что вывод "$ tput colors" равен "8"

Я выполнил инструкции и активировал:

  • Поддержка TrueMod (24-разрядный цвет)
  • Inject ConEmuHk
  • ANSI x3.64/xterm 256 цветов

Я не понимаю, что делать с 'отметьте, есть ли буфер/слайд.'

  • Я в Windows 7.
  • Я запускаю ConEmu с помощью специальной прямой ссылки, поэтому он загружает файл cygwin bash.
"C:\Program Files\ConEmu\ConEmu64.exe" /cmd ""C:\cygwin\bin\bash.exe" --login -i"
  • В моем профиле bashrc у меня есть → export TERM = cygwin
  • Это мое пользовательское командное приглашение:
    function prompt {

    local RED="\[\033[0;31m\]"
    local GREEN="\[\033[0;32m\]"
    local COOLRED="\e[38;5;173m"
    local COOLGREEN="\e[38;5;113m"
    PS1="$COOLRED\[email protected]\h $LIGHT_COOLGREEN\$PWD \[\e[0m\] > "

    }

    prompt
  • Значение ConEmuANSI в ON, кстати.

У меня есть несколько снимков экрана:

enter image description here

Как вы видите, командная строка выглядит очень экстравагантной, поскольку ей не нравятся 256 цветовых настроек. Если я заменю переменные COOLRED и COOLGREEN на RED и GREEN, тогда это выглядит нормально, но это не 256 цветов.

Другие скриншоты настроек:

enter image description hereenter image description here

И последний sceen выстрелил в него cygwin mintty. Все в порядке. Поддерживается 256 цветов. В нем позорный монетный двор не имеет вкладок. Это в основном причина, по которой я пытаюсь перейти на ConEmu.

enter image description here

Большое спасибо за помощь!!!

4b9b3361

Ответ 1

Bash не отправляет последовательности ANSI для консоли. Он пытается обработать их сам. И поскольку терминал * nix обычно имеет только 8-цветный (без учета 256-цветного режима), bash использует 8-цветную палитру вместо 16-цветной палитры, которая является общей для терминала Windows.

Я думаю, 256-цвет работает в mintty, потому что _isatty возвращает ноль в этом терминале. Но он возвращает ненулевое значение в ConEmu. Может быть, в будущих сборках я решаю эту загадку (как создать реальный терминал с функциями PTY для некоторых приложений).

Что касается вопроса

У вас нет необходимости в 256-цветах. Чтобы переопределить подсказку, вы можете использовать функцию "Расширить цвет переднего плана с фоном". В breaf - настроить цвета 16, 17 и т.д. В ConEmu, установить подсказку фона в bash до # 5 (настраивается в ConEmu) и voila.

В ConEmu "Extend..." была небольшая ошибка. Используйте сборку 121016 или новее.

PS1="\e[30;45m\[email protected]\h \e[34;45m$PWD \[\e[0m\] > "

ConEmu and real console window

ConEmu settings

Следующая информация не соответствует вопросу, но может быть полезна

Текущая версия не поддерживает 256-цветный режим в "полном" буфере консоли (ограничение, да, удаление его в планах).

Итак, вы можете пойти двумя способами

  • полностью отключить буфер прокрутки (многие способы, например "cmd -cur_console: h0" )
  • работают в нижней части буфера прокрутки.

Ответ 2

Я также не мог получить 256 цветовую поддержку для работы (цвета появятся, но они выглядят так же, как 16-цветная палитра). Я переключился на цветовую схему "xterm", и теперь он работает в собственных исполняемых файлах Windows (таких как Python), но не во всем, что использует Cygwin. Кажется, что Cygwin имеет обработку последовательности с концевой победой, которую вы не можете отключить, которая побеждает инъекцию ConEmuHk.

Это описано в вики ConEmu здесь.

Ответ 3

local COOLRED="\e[38;5;173m"

local COOLGREEN="\e[38;5;113m"

Те \e являются, вероятно, из, например, C printf. Вы не хотите их в оболочке script. Прикрепите оригинальную ноту \033. Также вам не хватает закрытия \]. Эти строки должны теперь читать

local COOLRED="\[\033[38;5;173m\]"

local COOLGREEN="\[\033[38;5;113m\]"