如何在 ConEmu + Git Bash 中正确启用 ANSI 颜色?

Posted

技术标签:

【中文标题】如何在 ConEmu + Git Bash 中正确启用 ANSI 颜色?【英文标题】:How to correctly enable ANSI colors in ConEmu + Git Bash? 【发布时间】:2015-02-19 06:03:35 【问题描述】:

我使用Git Bash 和ConEmu 让它看起来很酷。但是,在安装 Composer 后,颜色似乎被转义了:

所以 Git Bash 不支持所有颜色。检查 AnsiColors256.ans 文件:

经过大量谷歌搜索,我仍然没有找到任何解决方案。我不想使用 Ansicon 或其他控制台模拟器,ConEmu 适合我。

我的设置:

启用注入 ConEmuHk Ansi X3.64 / xterm 256 已启用 Windows 7 x64 Git Bash 1.9.5 ConEmu 141208

如何启用所有颜色?这让我对 Console-Zen 体验的需求很恼火:(

【问题讨论】:

作曲家?重击?它们是完全不同的应用程序。 当然,但对我来说似乎更像是控制台问题。即使in Composer's setup file 也表示ANSI 颜色输出应该在Ansicon 和ConEmu 中工作。 (前几行) 更新: 在 ConEmu 中运行 php -r "echo getenv('ConEmuANSI');"ON 找到old issue。似乎这是 ConEmu 中的一个错误。 不是 ConEmu 错误! Ansi 工作正常。 【参考方案1】:

在 Git Bash 中正确启用颜色:

    下载并解压ANSICON:https://github.com/adoxa/ansicon/releases/tag/v1.81 如果您运行的是 64 位操作系统,请复制 x64 文件夹中的所有内容,否则, 如果您运行的是 32 位操作系统,请复制 x86 文件夹中的所有内容。 在 C:\Program Files\ANSICON 处创建文件夹 ANSICON,并将复制的内容粘贴到此处。 右键单击您的 Git Bash 快捷方式,然后转到属性

    目标值设置/修改为以下(请参阅下面的屏幕截图):

"C:\Program Files\ANSICON\ansicon.exe" "C:\Program 文件\Git\git-bash.exe" --cd-to-home

    打开您的 .bashrc 文件 (C:\Users\Aditya\.bashrc)。

注意: .bashrc 是一个隐藏文件。所以你需要在你的windows资源管理器设置中打开选项来显示隐藏文件。

    将以下 2 行添加到您的 .bashrc 文件(任何位置):

unalias $(alias | grep winpty | grep php | cut -d"=" -f1 | cut -d" " -f2)

导出 ANSICON=true

    保存您的 .bashrc 文件并立即打开 Git Bash。完毕!

【讨论】:

这也适用于 Console2 或其分支 Consolez,就像 Aditya 显示的快捷方式目标一样:在 console2 选项卡设置中,在 git bash 选项卡的“shell”设置前面加上 ansicon.exe 的路径 Windows Defender 显示 ANSICON v1.81.zip 包含 ***:Win32/Tiggre!plock 我必须自己创建 .bashrc,而 git bash 自动创建了 .bash_profile,现在它正在按应有的方式工作【参考方案2】:

您可能遇到的另一个问题是,如果您在没有正确引用的情况下设置了任务(设置 → 启动 → 任务)。执行以下任务会破坏作曲家的 ANSI 着色(其他一切似乎都可以正常工作):

%TOOLS_DIR%\git\bin\sh.exe --login -i -new_console:C:%TOOLS_DIR%\git\mingw64\share\git\git-for-windows.ico:t:"Git bash"

%TOOLS_DIR% 的值为D:\Tools。我只能想象反斜杠是问题所在。但是,以下工作按预期工作:

"%TOOLS_DIR%\git\bin\sh.exe" --login -i -new_console:C:"%TOOLS_DIR%\git\mingw64\share\git\git-for-windows.ico":t:"Git bash"

【讨论】:

【参考方案3】:

WinR 运行 ConEmu(如果需要,输入 sh.exe 的完整路径)

ConEmu -basic -cmd sh.exe -l -i

运行composer,ANSI 正在运行。

【讨论】:

谢谢!不知道 -l 和 -i 标志可以,但设法使它工作!它现在显示正确的颜色。 -l-i 标志使其工作,因为您告诉 bash 分别运行“登录”和“交互式”shell。如果您希望它运行.bashrc 文件,则需要“登录”,“交互式”告诉 bash 它将读取和写入终端;没有终端,它不会启用着色。 GNU bash manual 的更多详细信息(回复@WillSolo)

以上是关于如何在 ConEmu + Git Bash 中正确启用 ANSI 颜色?的主要内容,如果未能解决你的问题,请参考以下文章

Conemu, Msys2 工具整合,提升windows下控制台工作效率

如何在 Windows 中将 Git Bash 拆分为多个“视图”?

带有ZSH的WSL Bash集成在ConEmu中 - Open Here Issue

从适用于 Windows 10 的 Git Bash 隐藏用户名和计算机名称

如何在 git bash 中设置正确的本地时区?

如何在 Powershell(vs bash)中正确生成和应用 git 补丁?