工匠命令显示插入"32m"、"34;4m"等类似内容

24

我不知道为什么,但我的Git Bash终端会在某些地方显示34m和随机数字。 这是一个截图。输入图像描述

谢谢任何帮助。


1
我不是100%确定,但你需要将终端颜色模式更改为256色。这将修复你的输出。 - Noproblem
我不这么认为。32m34;4m也可以在8位调色板中使用...并且看着OP的PS1,8位调色板似乎是有效的。 - anishsane
对我而言,唯一有效的方法(我也尝试过ANSICON解决方案)是在我的php artisan命令中添加--no-ansi。为了节省打字时间,我编辑了我的.profile文件,包括alias artisan="php artisan --no-ansi"。这样,我就可以输入诸如artisan storage:link之类的命令,而不会在输出中出现任何有趣的问题。 - Michael Novello
1
我唯一有效的解决方案是安装2.10.1版本。您可以通过明确搜索来找到此版本发布。 - Mycodingproject
8个回答

15

2
我必须打开和关闭(我想)。 - haakym
1
是的 @haakym,我的经验也是我不得不关闭并重新打开它。 - Kenny Grage

9

另一个选项是使用--no-ansi开关运行Laravel脚本,这将完全禁用ANSI代码。


2
这是我唯一有效的解决方案。我已经尝试了多种不同的颜色输出方式,但它都无法正常工作。我使用的是Windows10机器。谢谢Pete! - cbloss793

9

我尝试了列出的所有解决方案都不起作用,但将这些行添加到 Git/etc/bash.bashrc 中解决了问题。

# remove the winpty PHP aliases
unalias $(alias | grep winpty | grep php | cut -d"=" -f1 | cut -d" " -f2)

# support ansi color
export ANSICON=true

我在https://blog.kmelia.net/testing/coloration-dans-git-bash/123找到了解决方法。

我正在Windows 10上使用Git Bash,我的Git版本是2.21.0。

希望这可以帮助你。


1
这对我在Windows 10 + Git 2.23上有效。其他的都失败了。 - yespbs
这个在Windows上的Git Bash中的php别名(alias php='winpty php.exe')解释了为什么当composer使用@php调用命令时(它引用当前正在运行的php),颜色会起作用,但是手动从终端调用相同的命令时却没有颜色。相关链接:https://github.com/git-for-windows/git/issues/519 - Travis Britz
在我的Win 10 + Git 2.24上运行良好。'xterm-256color' 没有任何作用。 - Shafiq al-Shaar

4
似乎颜色代码没有正确显示: [34m 是蓝色前景,[39m 是默认前景色。
但是您需要一个前缀转义字符:
在Bash中,可以使用以下语法获取<Esc>字符:
- \e - \033 - \x1B
点击此处了解更多信息:http://misc.flogisoft.com/bash/tip_colors_and_formatting
这里也讨论了同样的问题:在Windows上使用Git Bash时,ANSI颜色转义序列似乎无效
基本上有两种hackish解决方法被提到:
php artisan tinker | cat 
php artisan tinker | echo -e

还有一些其他资源:

Git中的ANSI颜色未正确显示
在Windows 7上的Git Bash中,当运行Cucumber或rspec时,颜色显示为代码


这不只是那样简单。要复杂得多,因为 问题出在 OP 的配置上,而不是代码上。 PsySH 使用这些代码,使得这个答案毫无意义。请参见:https://github.com/JakubOnderka/PHP-Console-Color/blob/master/src/JakubOnderka/PhpConsoleColor/ConsoleColor.php#L276 - Amelia
@Amelia 这是正确的,我只是为了提供一些工具让OP继续搜索而进行评论。但由于这不适合作为评论,我决定将其发布为答案。 - Andreas Louv
这个问题实际上是一个非常普遍的问题,它源于 git-bash 伪装成 cygwin(理解颜色代码)的事实,但其本地程序(echo、cat、ls 等)都将颜色转换为 cmd.exe 可以理解的内容(cmd.exe 不理解颜色代码)。对更新表示赞赏。 - Amelia
1
如果我尝试运行 php artisan tinker | cat 或者 php artisan tinker | echo -e,会得到 output is not a tty 的输出。 - zhekaus

1

解决颜色问题的方法:下载并安装此软件https://github.com/adoxa/ansicon

安装步骤:

1)解压文件夹并进入x86/64文件夹(根据您的系统而定)
2)打开命令提示符
3)ansicon.exe -I

简单易行 :)


1

0

0

只需使用此命令更新Symfony软件包 -> composer update symfony/*


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