在 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。
Emacs术语模式(M-x term
(与C-c C-j
/C-c C-k
结合使用以暂时允许拉动似乎是一个不错的选择。在这里查看另一个答案。