我正试图在梦幻般的ConEmu-Maximus5控制台中获得256种颜色。
更新:现在它只显示8种颜色。我知道因为'$ tput colors'输出是'8'
我已关注instructions并已激活:
我不明白如何处理'检查是否有缓冲区/幻灯片。'
"C:\Program Files\ConEmu\ConEmu64.exe" /cmd ""C:\cygwin\bin\bash.exe" --login -i"
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\u@\h $LIGHT_COOLGREEN\$PWD \[\e[0m\] > " } prompt
我有一些屏幕截图:
正如您所看到的,命令提示看起来非常奢侈,因为它不喜欢256色设置。如果我用红色和绿色替换变量COOLRED和COOLGREEN,那么它看起来没问题,但它不是256色。
设置的更多屏幕截图:
最后一次拍摄它是cygwin的薄荷。一切都很好。支持全256色。这是一个耻辱的薄荷没有标签。这就是为什么我要搬到ConEmu的原因。
非常感谢您的帮助!
答案 0 :(得分:12)
Bash不会将ANSI序列发送到控制台。它试图自己处理它们。并且,因为* nix终端通常只有8色(不考虑256色模式),bash使用8色调色板代替16色调色板,这是Windows终端常用的。
我认为,256色可以使用,因为_isatty
在该终端中返回零。但它在ConEmu下返回非零值。可能在未来的构建中我解决了这个难题(如何为某些应用程序创建具有PTY功能的真实终端)。
至于问题
事实上,你不需要256色。要重新定义提示调色板,您可以使用“使用背景扩展前景色”功能。在breaf中 - 在ConEmu中设置颜色16,17等,将bash中的提示背景设置为#5(可在ConEmu中配置),然后瞧。
ConEmu“延伸......”处理中有一个小错误。使用build 121016或更高版本。
PS1="\e[30;45m\u@\h \e[34;45m$PWD \[\e[0m\] > "
以下信息与问题不符,但可能有用
当前版本在“整个”控制台缓冲区中不支持256色模式(限制,是的,在计划中将其删除)。
所以,你可以采取两种方式
答案 1 :(得分:2)
我也无法获得256色支持(颜色会显示,但它们看起来与16色调色板相同)。我切换到“xterm”颜色方案,现在它可以在本机Windows可执行文件(如Python)中使用,但在使用Cygwin的任何东西中都没有。 Cygwin似乎有终止逃逸序列处理,你无法关闭,这会导致ConEmuHk
注射失败。
答案 2 :(得分:0)
我遇到了这个奇怪的问题和奇怪的解决方案,并且以某种方式起作用。而且不知道这是否也适用于其他人,只是分享一些信息,以防万一。
我喜欢为控制台着色,并且喜欢利用RGB着色的全部真实256位。 在contumu / CMDer中配置后(我使用了分叉的)instruction。我的256位着色测试看起来像这样。。经过一番摸索,并使用我的bash 256bit功能进行了测试。即运行以下命令:
for i in {1..16384}; do echo -en "\e[38;5;${i}mTest";done
*注应该是{1..256},但是我不得不为更长的彩色打印而强制使用它,所以只花了更长的随机数。 给出结果:
很奇怪,但是我已经做到了。可能是由于优化原因,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
答案 3 :(得分:-1)
local COOLRED="\e[38;5;173m"
local COOLGREEN="\e[38;5;113m"
那些\e
可能来自例如C printf
字符串。你不希望它们在shell脚本中。坚持使用原始\033
符号。你也错过了结束\]
。这些行现在应该是
local COOLRED="\[\033[38;5;173m\]"
local COOLGREEN="\[\033[38;5;113m\]"