我试图在运行 cmder 时在 Cygwin 下获得 256 种颜色。通常,我所做的是在 Windows 10 中通过在“开始”中输入“cmd”来打开终端会话。如果我需要打开 Cygwin 终端,我通常会在该 cmder 实例中输入“bash”。
当我tput colors
从 cmder 提示符或 cmder 内运行的 Cygwin 终端内运行时,系统返回8
。
我已查看了以下类似的帖子和参考资料: ConEmu + ls——256 色不起作用 https://conemu.github.io/en/CygwinMsysConnector.html
(由于信誉度低的限制,省略了一些链接,请参阅评论,但我熟悉 Cygwin 如何在将 ANSI 解析并传递到 ConEmu 终端之前对其进行内部处理)
我已经下载了 cygwin/msys 连接器,并且确实tput colors
在运行连接器时返回 256。我想要做的是找到一种方法将此连接器更直接地集成到我的工作流程中。我有环境变量,可以将 Cygwin 更直接地绑定到 cmder 中的 Windows 终端环境中,有时还会在 bash 提示符之外运行 Cygwin 命令,例如从 Windows 提示符对某个文件运行 vim,因此每次我想访问 Cygwin bash 时简单地运行连接器对我来说并不是一个完整的解决方案。我想知道如何更直接地“连接”这个连接器,以便它在后台自动运行,而不是直接运行 bash。我不知道这是否有意义。
我正在寻找的是需要具体设置哪些环境变量、任务等才能使这种链接更加无缝地发生。
编辑:我意识到指出我已将 cygwin 的路径放入我的系统环境变量中可能很重要。
答案1
将 cygwin 与 ConEmu 结合使用。已ConEmu 160714
在terminals.v0.7.4.7z
https://github.com/Maximus5/cygwin-connector/releases
摘录conemu-cyg-64.exe
自terminals.v0.7.4.7z
并复制于C:\cygwin64\bin
Settings->Startup->Tasks
修改预定义任务
set CHERE_INVOKING=1 & C:\CygWin64\bin\bash.exe --login -i -new_console:C:"C:\CygWin\Cygwin.ico"
到
set CHERE_INVOKING=1 & C:\cygwin64\bin\conemu-cyg-64.exe /usr/bin/bash.exe --login -i -new_console:C:"C:\cygwin64\Cygwin.ico"
设置Settings-> Features -> Colors -> Scheme
为xterm
256 种颜色并不理想,看起来只有 16 种,但我猜是因为连接器和 ConEmu 不匹配