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

li9yvcax  于 12个月前  发布在  Ruby
关注(0)|答案(4)|浏览(191)

我很高兴能使用最新的ruby3.0,以及能够使用更新的命令行解释器,它可以突出显示语法和着色。
但是,颜色对我来说有点难看。我怎么才能改变它们呢?IRB的命令行选项允许我用--nocolorize关闭着色,但是我不知道允许我改变默认值的配置文件在哪里(例如,使蓝色更亮)。

puruo6ea

puruo6ea1#

我通过改变iTerm2主题解决了这个问题。
切换到“探戈黑暗”使其可读。


的数据
下面是Ruby 3.1的自动补全功能:


qvtsj1bj

qvtsj1bj2#

一个快速的工作,直到这是可配置的是改变ANSI青色颜色默认在您的终端首选项。在iTerm2中,你可以去首选项>配置文件>颜色。我去了一个相当取383a59。


的数据

oaxa6hgo

oaxa6hgo3#

有些是硬编码的;但它大部分都在常量内,因此是可编辑的(即使它是私有的)。这应该可以让你用青色来改变所有讨厌的蓝色。唯一的缺点是关键字确实被硬编码为使用CYAN,但我们可以作弊,把CYAN常量本身改成别的(例如BLUE-像niltrue这样的东西的可读性对我来说并不重要,但请随意更改为其他东西),并希望没有其他插件依赖于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在未来发生变化,这很可能会停止工作。

brccelvz

brccelvz4#

据我所知,阅读的来源,颜色是硬编码在最后一个版本或IRB,所以没有配置(尚未!)可用于此。

相关问题