在eshell上的irb命令历史按键

时间:2013-04-02 02:35:40

标签: emacs irb eshell

如何在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-arrowctrl-r之外也不使用。

这可能是irb中readline的问题,但我不这么认为。 conf.use_readline在命令行上为nil,其中irb命令历史记录正常工作。在eshell中运行irb --readline将conf.use_readline切换为true,但不修复向上箭头或ctrl-r。

1 个答案:

答案 0 :(得分:1)

Emacs术语模式(M-x term)与C-c C-j / C-c C-k组合暂时允许yanking似乎是一个不错的选择。请参阅另一个答案here