Terminal Can';t在ConEmu中启用256色
我正在尝试在奇妙的控制台中获得256色 更新:现在它只显示8种颜色。我知道,因为“$tput colors”输出为“8” 我已遵循以下步骤并激活:Terminal Can';t在ConEmu中启用256色,terminal,conemu,ansi-colors,256color,Terminal,Conemu,Ansi Colors,256color,我正在尝试在奇妙的控制台中获得256色 更新:现在它只显示8种颜色。我知道,因为“$tput colors”输出为“8” 我已遵循以下步骤并激活: TrueMod(24位颜色)支持 香港 ANSI x3.64/xterm 256色 我不明白如何处理“检查缓冲区/幻灯片是否正确” 我在Windows7中 我用一个自定义的直接链接启动ConEmu,所以它加载cygwin bash文件 “C:\Program Files\ConEmu\ConEmu64.exe”/cmd“C:\cygwin\b
- TrueMod(24位颜色)支持
- 香港
- ANSI x3.64/xterm 256色
- 我在Windows7中
- 我用一个自定义的直接链接启动ConEmu,所以它加载cygwin bash文件
- 在我的bashrc配置文件中,我有->导出TERM=cygwin
- 这是我的自定义命令提示符:
- 顺便说一下,ConEmuANSI的值在ON中
local COOLRED="\e[38;5;173m"
local COOLGREEN="\e[38;5;113m"
这些\e
可能来自例如Cprintf
字符串。您不希望它们出现在shell脚本中。请使用原始的\033
符号。此外,您还缺少结尾\]
。这些行现在应为
local COOLRED="\[\033[38;5;173m\]"
local COOLGREEN="\[\033[38;5;113m\]"
Bash不将ANSI序列发送到控制台。它尝试自己处理它们。而且,由于*nix终端通常只有8色(不考虑256色模式),Bash使用8色调色板,而不是Windows终端常见的16色调色板 我认为,256色在mintty中有效,因为
\u isatty
在该终端中返回零。但在ConEmu下它返回非零值。可能在将来的构建中,我解决了这个难题(如何为某些应用程序创建具有PTY功能的真实终端)
至于这个问题
实际上,您不需要256色。要重新定义提示调色板,您可以使用“用背景扩展前景色”功能。在BRAF中-设置颜色16、17等。在ConEmu中,将bash中的提示背景设置为#5(可在ConEmu中配置),然后瞧
ConEmu“扩展…”处理中有一个小错误。请使用build 121016或更高版本
PS1="\e[30;45m\u@\h \e[34;45m$PWD \[\e[0m\] > "
以下信息与问题不匹配,但可能有用
当前版本不支持“整个”控制台缓冲区中的256色模式(限制,是的,在计划中将其删除)
所以,你可以走两条路
- 完全禁用回滚缓冲区(多种方式,例如“cmd-cur_控制台:h0”)
- 在滚动缓冲区的底部工作
ConEmuHk
注入
我遇到了这个奇怪的问题和奇怪的解决方案,不知怎么的,它起了作用。不知道这是否也适用于其他人,只是一些信息共享,以防这会有所帮助 我喜欢给我的控制台上色,并且喜欢使用完整的256位RGB真彩色。 在与conemu/CMDer混淆之后(我使用了分叉的一个)。我的256bit着色测试如下..在经过一点修改并使用bash 256bit功能进行测试后。即运行以下命令:
for i in {1..16384}; do echo -en "\e[38;5;${i}mTest";done
*便笺应该是{1..256},但我必须强制它打印更长的彩色打印,所以只需要更长的随机数。。
给出结果:
但是跑了两三次,我突然看到了这个干净的灰色阴影
然后它就成功了。。
奇怪的是,我让它工作了。可能是因为优化原因,CMDer没有使用完整的256位,当它被启动时会被触发
PS:my 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
-cur\u控制台:fp-cur\u控制台:d:“C:\WS”:P::t:“test”:C:“C:\Arbeit\tools\Iconka Buddy Ninja.ico”set“PATH=%ConEmuDrive%\Program Files\Git\usr\bin;%PATH%”和“%ConEmuDrive%\Program Files\Git bash.exe”--无cd--命令=%ConEmuBaseDirShort%\conemu-msys2-64.exe/usr/bin/bash.exe-l-i
谢谢您的回复。我尝试了您的变量,但仍然没有成功。我尝试了删除自定义颜色提示,以防万一,当我打印AnsiColors256时。ans看起来只能显示8种颜色。\e
通常类似于转义字符,并且确实是必需的。它们与printf
无关。请解释我应该在bash中创建什么文件来重新定义提示符?只需在主目录中创建一个名为.bashrc的文件即可。“.bashrc”不起作用,但“.profile”do.更奇怪的是。Bash没有将Esc发送到控制台,而是尝试自己处理它们。给你-8种颜色。这解释了关于.bashrc.Bash_profile和.profile的内容。感谢你的辛勤工作。我确实不需要256种颜色。我只需要大约16种好看的颜色,我可以在颜色部分做到这一点。干杯!@Maximus I很高兴在ConEmu中看到256种颜色-我希望能够看到完全电容的LS_颜色,例如Bash不向控制台发送ANSI代码
您能详细说明一下吗?因为这是不正确的。
for i in {1..16384}; do echo -en "\e[38;5;${i}mTest";done
-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