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

11
我正在使用Git Bash来编写IT技术内容,结合ConEmu使终端更美观。但是,在安装Composer后,颜色似乎被忽略了:

enter image description here

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

enter image description here

通过大量搜索,我还没有找到任何解决方案。我不想使用Ansicon或其他控制台模拟器,ConEmu对我来说很好。

我的设置:

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

如何启用所有颜色?这使我无法享受控制台的Zen体验:(


Composer?Git-bash?它们是完全不同的应用程序。 - Maximus
当然可以,但我认为这更像是控制台问题。即使在Composer的安装文件中,它也说ANSI颜色输出应该在Ansicon和ConEmu中工作。(前几行) - gpap
更新:在ConEmu中运行php -r“echo getenv('ConEmuANSI');”会显示为“ON”。 - gpap
发现一个旧问题。看起来是ConEmu的一个漏洞。 - gpap
1
这不是ConEmu的错误!Ansi正常工作。 - Maximus
3个回答

7
为了正确启用Git Bash中的颜色:
  1. 下载并提取ANSICONhttps://github.com/adoxa/ansicon/releases/tag/v1.81
  2. 如果您正在运行64位操作系统,请复制x64文件夹中的所有内容,否则,
    • 如果您正在运行32位操作系统,请复制x86文件夹中的所有内容。
  3. C:\Program Files\ANSICON处创建一个名为ANSICON的文件夹,并将复制的内容粘贴到此处。
  4. 右键单击Git Bash快捷方式,然后转到属性

enter image description here

  1. 目标值设置/修改为以下值(请参照下面的截图):

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

Modify shortcut target

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

注意:.bashrc是一个隐藏文件。因此,您需要在Windows资源管理器设置中打开选项以显示隐藏文件。

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

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

export ANSICON=true

enter image description here

  1. 保存您的.bashrc文件,现在打开Git Bash。完成! composer命令输出 php artisan彩色输出-非常棘手

这也适用于Console2或其分支Consolez,就像Aditya在快捷方式目标中所示的那样:在console2选项卡设置中,在git bash选项卡的“shell”设置前加上ansicon.exe的路径。 - Sbu
Windows Defender显示ANSICON v1.81.zip包含Trojan:Win32/Tiggre!plock。 - Healyhatman
我不得不自己创建 .bashrc 文件,而 git bash 自动创建了 .bash_profile 文件,现在它的工作方式正是应该的。 - Solomon Tesfaye
似乎应该有-a选项:unalias -a $(alias | grep winpty | grep php | cut -d"=" -f1 | cut -d" " -f2) - yanot

4

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

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

运行composer,ANSI正常工作。

ANSI is working


谢谢!不知道-l和-i标志是什么,但设法使其工作!现在它显示正确的颜色。 - gpap
1
-l-i 标志使其工作,因为您告诉 bash 分别运行“登录”和“交互式” shell。如果要运行您的 .bashrc 文件,则需要“登录”,“交互式”告诉 bash 它将从终端读取并写入;没有终端,它将不会启用着色。更多详细信息请参见 GNU bash 手册 - jamesvl

1

你可能会遇到的另一个问题是,如果你没有正确地使用引号设置任务(设置→启动→任务),就会出现问题。像下面这样的任务将破坏composer的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"
< p > %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"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接