我正在学习 Rails 教程。我在第 3.7.1 节,我试图在运行 bundle exec rake test
时在我的 gitbash 命令提示符中获取颜色。我已经尝试安装 ansi、win32console gem 和名为 turn 的 gem,但似乎没有任何效果。
在运行 bundle exec rake test
时是否有可能得到红色和绿色?
最佳答案
您绝对可以获得彩色输出。但不能使用标准的 Windows cmd.exe 或 powershell。 gem 帮不上忙。您需要为您的系统添加正确解释 ANSI 转义码的能力——这是 cmd 和 powershell 无法做到的。 (ANSI.sys 是在 DOS 下处理 ANSI 转义码的方式。cmd 和 powershell 不使用它。)
您需要 (1) 安装 ANSICON 和/或 (2) 安装和使用不同的控制台/控制台模拟器或处理颜色(ANSI 转义码)的外壳。
(1) ANSICON是一个用于 Windows 的程序,它解释 ANSI 转义码以便显示颜色。它有点“在”cmd 或 powershell 之上运行。您可以对其进行设置,以便在您使用 cmd 或 powershell 时始终使用它,或者仅在特定时间使用它。大多数人都安装了它并且非常满意。 Jason Karns wrote a blog post关于为 git bash(在 Windows 上)安装和使用 ANSICON,人们发现这些信息很有帮助。
(2) 以下是 cmd/powershell 替代品的流行选项。这些是控制台模拟器和工具以及 shell 替代品:
- ConEmu - ("ConEmu-Maximus5") 这是一个控制台模拟器,而不是一个 shell。您可以将它与任何 shell(cmd、powershell、cygwin、bash 等)一起使用。但在日常使用中,一旦设置好,就可以像使用 cmd.exe 或 powershell 等一样使用它。(我使用它比其他选择更了解它。我有配置让它根据需要以不同的 git/ruby 版本/rails 版本配置启动。我不使用 ANSICON 因为我在需要打开控制台时使用 ConEmu。)
- Console 2 - 与 ConEmu 一样,这是一个控制台模拟器,它在 cmd.exe 之上和之外添加了功能(包括显示 ANSI 颜色)。您可以将它与现有的 shell(例如 powershell 等)一起使用。这是一个 SO answer that talks about using Console 2.
Console Z - 控制台 2 的一个分支,它是最新的并且得到积极维护。我没用过,但是here is some info on how you'd configure Console Z to work with git bash.
您也可以(或代替)使用类 Unix shell(或套件):
- Cygwin是在 Windows 中运行的最著名的类 Unix 命令套件。附带可以使用并且可以与 ANSI 代码一起使用的外壳(例如 MinTTY)
- Babun位于 cygwin 安装之上的 Windows 外壳。可配置;您可以创建配置(例如用于 git bash 或 rvm 或其他)并将它们作为插件共享。 (使用 mitty 控制台。)
- MinGW - 一个“用于 Windows 的极简 GNU”,具有用于 Windows 的 GNU 工具集,专注于开发所需的那些工具。 (IOW,它比 Cygwin 提供的集合更小且略有不同。)DevKit 用于将 ruby gems 编译为 native Windows 代码,使用 MinGW。
- MinSYS - “Minimal SYStem 的[A] 缩写,是一个 Bourne Shell 命令行解释器系统。作为 Microsoft 的 cmd.exe 的替代品,它提供了一个通用的命令行环境,特别适合与 MinGW 一起使用,用于将许多开源应用程序移植到 MS-Windows 平台;Cygwin-1.3 的轻量级分支,它包括一小部分 Unix 工具,选择这些工具是为了实现这一目标。” (来自 MinGW 网站:)
- Cygwin是在 Windows 中运行的最著名的类 Unix 命令套件。附带可以使用并且可以与 ANSI 代码一起使用的外壳(例如 MinTTY)
一些搜索可能会出现额外的选项。这些是最常讨论和使用的选项(基于与其他人讨论 IRL、StackOverflow,以及现在和以前进行的搜索。)
安装并设置其中一个选项(不会花很长时间),然后您就可以看到 RSpec 或 git 或其他工具使用的有用颜色了。
关于ruby-on-rails - 如何使用 bundle exec rake test 在 Windows gitbash 中获取颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955207/