【发布时间】:2016-07-18 13:26:36
【问题描述】:
我有 PhpStorm 2016.2,并在 Shell 路径中添加了 Cygwin,如下所示:"C:\cygwin64\bin\env.exe" CHERE_INVOKING=1 /bin/bash.exe
它运行良好,但颜色不起作用。
例如,我有 ?[32m Name 而不是将 Name 涂成绿色。
我尝试了一些方法,例如添加插件 Grep Console 以支持 ANSI Color,但没有奏效。
使用多种 ANSI 颜色的线条真的很难?[39m ?[32m Scheme ?[39m ?[32m Host ?[39m ?[32m Path。
不要犹豫,询问有关该问题的更多信息。谢谢。
附:我在 Windows 10 上。
编辑
当我在 PHPStorm 终端中执行/usr/bin/which php 时,我得到/cygdrive/d/wamp2/bin/php/php5.6.16/php。我的 WAMP 中有 php5.6.16 和 php7.0.0,我目前正在使用 php7.0.0。
编辑 2 我为 php7.0.0 添加了一个 $PATH,所以现在当我执行 /usr/bin/which php 时我有 /cygdrive/d/wamp2/bin/php/php7.0.0/php。但主要问题仍然存在。
【问题讨论】:
-
终端通常支持 ANSI 颜色(如果我执行像
npm.cmd outdated -g这样的命令(它有彩色输出),我在 Windows 7 上工作正常(使用cmd))。可能是 Cygwin/bash 在这里有事情要做... -
感谢您的回答。当我使用 Cygwin env.exe 在 Phpstorm 终端中执行
php bin/console d:r时,我得到 ANSI 颜色代码?[32m。但是当我直接在 Cygwin 中执行相同的命令时,我得到了很好的彩色显示。所以我的 Cygwin 看起来不错。这更像是 Phpstorm 错误地解释了命令返回的内容。 -
我刚刚测试了一些有趣的东西。当我使用 Cygwin 在我的 Phpstorm 终端中执行
ls -l --color=always时,我得到了颜色。似乎只有 symfony 命令(例如:php bin/console d:r)提供 ANSI 代码?[32m。但是我还是不知道bug是从哪里来的…… -
请提供您正在使用的 Windows 10 的版本。
(Click Windows Icon -> Settings -> System -> About)version 1607/build 14393(周年更新)存在问题,这似乎导致 ANSI 控制台支持出现一些问题。 -
@WillMic 您可能需要在 Cygwin PHP 环境中安装
php-posixextension。除此之外,Cygwin 应该带有提供颜色 (ANSI) 支持的 MinTTY。当为它定义ANSICON环境变量(检查~/.bash_rc)时,Symfony 应该着色。只有其他建议是传递--no-ansi标志,如php bin/console --no-ansi your-command或php composer.phar --no-ansi your-command以禁用颜色输出。
标签: terminal cygwin wamp phpstorm symfony-console