在 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
在 irb 命令历史工作正常的命令行上为零。在 eshell 中运行 irb --readline 会切换conf.use_readline
为 true,但不会修复向上箭头或 ctrl-r。