如何在emacs eshell中运行irb时访问命令历史记录?
当我在emacs之外的命令行运行irb时,我可以使用向上箭头来获取最后一个命令,或者使用ctrl-r来搜索命令历史记录。在eshell里面的irb中,向上箭头什么都不做(即它运行eshell-previous-matching-input-from-input
,它在irb中什么也不做)并且ctrl-r使用emacs反向搜索缓冲区而不是搜索命令历史记录。我猜irb从未收到向上箭头按键,因为它绑定到eshell-previous-matching-input-from-input
,但我不确定如何解决它。运行(global-unset-key (kbd "<up>"))
并没有取消绑定eshell中的向上箭头,我不确定这是否合适。
我知道inf-ruby,但我更喜欢在eshell中使用irb,除up-arrow
和ctrl-r
之外也不使用。
这可能是irb中readline的问题,但我不这么认为。 conf.use_readline
在命令行上为nil,其中irb命令历史记录正常工作。在eshell中运行irb --readline将conf.use_readline
切换为true,但不修复向上箭头或ctrl-r。