1

在 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。

4

1 回答 1

1

Emacs 术语模式 ( M-x term) 与C-c C-j/结合使用C-c C-k以暂时允许 yanking 似乎是一个不错的选择。在此处查看另一个答案。

于 2013-04-02T23:07:13.430 回答