23

我试图在奇妙的ConEmu-Maximus5控制台中获得 256 种颜色。

更新:现在它只显示 8 种颜色。我知道是因为 '$tput colors' 输出是 '8'

我已按照说明进行操作并激活:

  • TrueMod(24 位颜色)支持
  • 注入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
  • 这是我的自定义命令提示符:
    功能提示{

    本地红=“\[\033[0;31m\]”
    本地 GREEN="\[\033[0;32m\]"
    本地冷却 =“\e[38;5;173m”
    本地 COOLGREEN="\e[38;5;113m"
    PS1="$COOLRED\u@\h $LIGHT_COOLGREEN\$PWD \[\e[0m\] > "

    }

    迅速的
  • 顺便说一下,ConEmuANSI 的值是 ON。

我有一些屏幕截图:

在此处输入图像描述

如您所见,命令提示符看起来非常奢侈,因为它不喜欢 256 色设置。如果我将变量 COOLRED 和 COOLGREEN 替换为 RED 和 GREEN,那么它看起来不错,但它不是 256 色。

更多设置截图:

在此处输入图像描述 在此处输入图像描述

最后一个镜头是cygwin的薄荷糖。那里一切都很好。支持全 256 色。可惜薄荷没有标签。这主要是我尝试迁移到 ConEmu 的原因。

在此处输入图像描述

非常感谢您的帮助!!!

4

4 回答 4

13

Bash 不会将 ANSI 序列发送到控制台。它试图自己处理它们。而且,由于*nix终端一般只有8色(不考虑256色模式),bash使用8色调色板代替Windows终端常见的16色调色板。

我认为,256 色在 mintty 中有效,因为_isatty在该终端中返回零。但它在 ConEmu 下返回非零值。可能在未来的构建中我解决了这个难题(如何为某些应用程序创建具有 PTY 功能的真实终端)。

至于问题

事实上,你不需要 256 色。要重新定义提示调色板,您可以使用“使用背景扩展前景色”功能。在 breaf - 在 ConEmu 中设置颜色 16、17 等,将 bash 中的提示背景设置为 #5(可在 ConEmu 中配置),瞧。

ConEmu“扩展...”处理中有一个小错误。使用内部版本 121016 或更高版本。

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

ConEmu 和真实控制台窗口

ConEmu 设置

以下信息与问题不符,但可能有用

当前版本不支持“整个”控制台缓冲区中的 256 色模式(限制,是的,在计划中将其删除)。

所以,你可以走2条路

  • 完全禁用回滚缓冲区(多种方式,例如“cmd -cur_console:h0”)
  • 在滚动缓冲区的底部工作。
于 2012-10-16T12:22:33.900 回答
2

我也无法获得 256 色支持(颜色会显示,但它们看起来与 16 色调色板相同)。我切换到“xterm”配色方案,现在它可以在本机 Windows 可执行文件(例如 Python)中使用,但不适用于使用 Cygwin 的任何东西。Cygwin 似乎具有您无法关闭的终端转义序列处理,这会破坏ConEmuHk注入。

这记录在 ConEmu wiki 上,here。

于 2014-12-08T16:31:37.653 回答
1

我遇到了这个奇怪的问题和奇怪的解决方案,它以某种方式起作用。并且不知道这是否也与其他人一起,只是一些信息共享以防万一这会有所帮助。

我喜欢给我的游戏机上色,也喜欢使用真正的 256 位 RGB 着色。在按照 conemu/CMDer(我使用了分叉的)指令进行配置之后。我的 256 位着色测试看起来像这样。在此处输入图像描述. 经过一番折腾并使用我的 bash 256 位功能进行了测试。即运行这个命令:

for i in {1..16384}; do echo -en "\e[38;5;${i}mTest";done

*注意应该是{1..256},但我不得不强制它进行更长的彩色打印,所以只需要更长的随机数..给出结果: 在此处输入图像描述

但是运行了大约 2-3 次,我突然看到了这个干净的灰色阴影 在此处输入图像描述

然后它就起作用了.. 在此处输入图像描述

很奇怪,但我得到了这个工作。会不会是因为优化原因,CMDer 不知何故没有使用完整的 256 位,并且在启动时被触发??,

PS:我用于控制台的 CMDer cmd:

-cur_console:fp -cur_console:d:"C:\WS":P:"<Cobalt>":t:"test":C:"C:\Arbeit\tools\Iconka-Buddy-Ninja.ico" set "PATH=%ConEmuDrive%\Program Files\Git\usr\bin;%PATH%" & "%ConEmuDrive%\Program Files\Git\git-bash.exe" --no-cd --command=%ConEmuBaseDirShort%\conemu-msys2-64.exe /usr/bin/bash.exe -l -i
于 2018-12-30T16:50:41.490 回答
-1
local COOLRED="\e[38;5;173m"

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

那些\es 可能来自例如 Cprintf字符串。您不希望它们在 shell 脚本中。坚持原来的\033符号。你也错过了闭幕式\]。这些行现在应该是

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

local COOLGREEN="\[\033[38;5;113m\]"
于 2012-10-16T11:13:26.367 回答