ruby-on-rails - 如何使用 bundle exec rake test 在 Windows gitbash 中获取颜色

标签 ruby-on-rails ruby ansi git-bash

我正在学习 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 网站:)

一些搜索可能会出现额外的选项。这些是最常讨论和使用的选项(基于与其他人讨论 IRL、StackOverflow,以及现在和以前进行的搜索。)

安装并设置其中一个选项(不会花很长时间),然后您就可以看到 RSpec 或 git 或其他工具使用的有用颜色了。

关于ruby-on-rails - 如何使用 bundle exec rake test 在 Windows gitbash 中获取颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29955207/

相关文章:

ruby-on-rails - 你怎么知道一个数组是否有连续的相同元素?

javascript - jQuery中计算行总数和所有行总数

javascript - 使用 ERB 在 Javascript 中设置 CSS backgroundImage 路径

ruby - 如何将 fixnum 添加到 ruby​​ 中的字符串?

ruby - 使用 Ransack 'eq' 谓词搜索空值

linux - 在 QProcess 输出中保留 ANSI 转义序列

ruby-on-rails - 我如何在具有事件记录的 Rails 中使用两个不同的数据库?

javascript - 任何 Ruby 的 HTML 解析器都可以执行 JavaScript 来查看生成的 DOM 吗?

terminal - 转义码 VT102 和 ANSI

c - 位移位傻瓜指南?