irb 会不断保存历史记录,即使通过 IRB 配置关闭了

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

我的 .irbrc 中有这些声明

IRB.conf[:SAVE_HISTORY] = nil
IRB.conf[:EVAL_HISTORY] = nil

但 irb 仍然创建历史文件。我还需要设置其他东西吗?

更新:根据要求,这是用于运行

irb
(路径缩短)的有效命令:

export IRBRC=/path/to/irbrc_for_testing.rb
java -Xmx4G -cp /path/to/org/jruby/jruby-complete/1.7.27/jruby-complete-1.7.27.jar org.jruby.Main /path/to/bin/jirb_swing_ex

文件 jruby-complete-1.7.27.jar 和 jirb_swing_ex 是从 JRuby 网站下载的。

文件

irbrc_for_testing.rb
包含 IRB.conf 设置。

ruby jruby
3个回答
1
投票

默认情况下,

irb
将存储您在
IRB.conf[:HISTORY_FILE]
中使用的最后1000条命令(默认为~/.irb_history)。

如果要禁用历史记录功能,请将

IRB.conf[:SAVE_HISTORY] = nil
添加到 .irbrc 文件中,并在 .irbrc 文件所在的同一目录中运行
irb
命令。


1
投票

您可以在您的版本的 jruby 源代码中看到,即使在该版本的 irb 中也使用了这些配置值。问题一定在于它如何尝试加载您的配置文件。

您可以在同一文件的下方看到 irb 还查找环境变量来定位配置。尝试像这样运行它

IRBRC=/path/to/your/irbrc irb

1
投票

我找到了解决方案:

我的 irb 设置文件(即配置

IRB.conf
的文件)在命令
load(user_irbrc)
最后执行,其中变量
user_irbrc
(在某些不幸的情况下)指向由
 放置的某个 irbrc 设置文件rbenv
版本管理器(我之前用它来在 MRI rubies 之间切换)。看来这个 rbenv irbrc 负责将
IRB.conf[:SAVE_HISTORY]
恢复到 100 的值。

修复了不需要的

load
命令后,历史记录保存功能被关闭。

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