如何更改 ruby 3.0 的 IRB 中的默认语法着色

问题描述 投票:0回答:4

我很高兴使用最新的 ruby 3.0;以及可以访问更新的命令行解释器,该解释器可以进行语法突出显示和着色。

但是,颜色对我来说有点难看。我怎样才能改变它们? IRB 的命令行选项允许我使用

--nocolorize
关闭着色,但我不知道配置文件在哪里,可以让我更改默认值(例如,使蓝色变浅。)

ruby syntax-highlighting irb ruby-3
4个回答
10
投票

我通过更改 iTerm2 主题解决了这个问题。

切换到“Tango Dark”使其可读。

这是新的 Ruby 3.1 自动完成功能现在的样子:


6
投票

在可配置之前,快速解决方法是更改终端首选项中的 ANSI 青色默认值。在 iTerm2 中,您可以转到首选项 > 配置文件 > 颜色。我买了一个相当吸引人的 383a59。


5
投票

有些是硬编码的;但其中大部分都在常量内,因此可以编辑(即使它是私有的)。这应该可以让你用青色改变所有讨厌的蓝色。唯一的缺点是关键字确实被硬编码为使用

CYAN
,但我们可以作弊并将
CYAN
常量本身更改为其他内容(例如
BLUE
-
nil
true
等内容的可读性不是这样)对我来说很重要,但请随意更改为其他内容),并希望没有其他插件依赖于
CYAN
实际上是青色的:D

module IRB::Color
  TOKEN_SEQ_EXPRS.each do |token, (seq, exprs)|
    seq[0] = CYAN if seq[0] == BLUE
  end
  remove_const :CYAN
  CYAN = BLUE
end

您可以将其放入

$HOME/.irbrc
中,使其在未来所有
irb
会话中发挥作用。

不用说,这是一个黑客行为,如果

IRB::Color
将来发生变化,这很可能会停止工作。


2
投票

据我所知阅读源代码,颜色在上一个版本或 IRB 中是硬编码的,因此还没有可用的配置。

© www.soinside.com 2019 - 2024. All rights reserved.