Ruby on rails 如何使用bundle exec rake测试在Windows gitbash中获取颜色

Ruby on rails 如何使用bundle exec rake测试在Windows gitbash中获取颜色,ruby-on-rails,ruby,ansi,git-bash,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。宝石帮不了忙。您需要向系统中添加正确解释ANSI转义码的功能,这是cmd和powershel

我正在学习Rails教程。我在第3.7.1节,当运行
bundle exec rake test
时,我试图在gitbash命令提示符中获得颜色。我试过安装ansi、win32console gem和名为turn的gem,但似乎没有任何效果


当运行bundle exec rake test时,是否可能得到红色和绿色?

您肯定可以得到彩色输出。但不能使用标准的Windows cmd.exe或powershell。宝石帮不了忙。您需要向系统中添加正确解释ANSI转义码的功能,这是cmd和powershell无法做到的。(ANSI.sys是在DOS.cmd下处理ANSI转义码的方式,powershell不使用它。)

您需要(1)安装ANSICON和/或(2)安装并使用不同的控制台/控制台仿真器或处理颜色的shell(ANSI转义码)

(1) 是一个用于Windows的程序,它解释ANSI转义码以便显示颜色。它在cmd或powershell上运行。您可以设置它,以便在使用cmd或powershell时始终使用它,或者仅在特定时间使用它。大多数人都安装了它,并且对它非常满意。 关于安装和使用ANSICON for git bash(在Windows上)的信息,人们认为这很有帮助

(2) 以下是cmd/powershell替代方案的常用选项。这些是控制台模拟器、工具和shell替代方案:

  • -(“ConEmu-Maximus5”)这是一个控制台仿真器,而不是shell。您可以将它用于任何shell(cmd、powershell、cygwin、bash等)。但在日常使用中,一旦设置好它,就可以像使用cmd.exe或powershell一样使用它。(我使用它是为了比其他选择更了解它。我根据需要为它配置了不同的git/ruby版本/rails版本配置。我不使用ANSICON,因为我在需要打开控制台时使用ConEmu。)
  • -与ConEmu一样,这是一个控制台仿真器,在cmd.exe之上和之外添加了功能(包括显示ANSI颜色)。您可以将其与现有shell(例如powershell等)一起使用
  • -控制台2的一个分支,是最新的,并积极维护。我从未使用过它,但是

  • 您还可以(或代替)使用类似Unix的shell(或套件):

    • 是在Windows中运行的最著名的类Unix命令套件。随附shell(例如MinTTY),可用于ANSI代码
      • 位于cygwin安装之上的windows shell。可配置;您可以创建配置(例如git bash或rvm或其他任何配置)并将其作为插件共享。(使用mitty控制台。)
    • -一个“针对Windows的最低限度GNU”,它有一个针对Windows的GNU工具集,专注于开发所需的工具。(看,它比Cygwin提供的工具集更小,稍有不同。)DevKit使用MinGW将ruby gems编译成本机Windows代码
    • -“[A]收缩”最小系统",是一个Bourne Shell命令行解释器系统。作为Microsoft的cmd.exe的替代品,它提供了一个通用命令行环境,特别适合与MinGW一起使用,用于将许多开放源代码应用程序移植到MS Windows平台;Cygwin-1.3的一个轻量级分支,包括一小部分Unix工具,选择它是为了实现这一目标。”(来自MinGW网站:)
一些搜索可能会出现其他选项。这些是最常被谈论和使用的选项(基于与其他人交谈IRL、StackOverflow以及现在和以前进行搜索)


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

我从未在windows上使用过bash,但它在linux上是可能的,在windows上也应该是可能的。