【发布时间】:2013-04-02 02:35:40
【问题描述】:
在 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。
【问题讨论】: