Не удается включить 256 цветов в ConEmu

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

3 ответов


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

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

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

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

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

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

ConEmu and real console window

ConEmu settings

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

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

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

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

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

это задокументировано на вики ConEmu, здесь.


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

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

те \es, вероятно, из например c printf строку. Вы не хотите, чтобы они были в сценарии оболочки. Палка с оригиналом 3 нотации. Также вам не хватает закрытия \]. Эти строки следует читать

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

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