如何在 emacs shell 中运行上一个命令?

如何在 emacs shell 中运行上一个命令?

我在 Ubuntu 上处于终端模式,并且正在运行 emacs,其中打开了 2 个缓冲区,一个是 ruby​​ 文件,另一个是 shell(通过键入 Mx shell 打开),当我切换到 shell 缓冲区时,我想运行之前运行的相同命令。我通常只需在终端窗口中单击向上箭头,但在 emacs 中,它只会将光标向上移动一行。

有人知道在 emacs shell 中运行上一个 shell 命令的按键吗?

答案1

M-p完成工作

答案2

除了 之外M-p,您还可以使用C-up,我觉得这种方法更可取。互补键M-nC-down将让您获取历史记录中的下一个命令。

答案3

您也可以将其添加到您的 emacs init 文件中:

(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input)

答案4

DeLorean88 的答案对我有用,但只有在“progn”行上有第二个右括号:

(progn(require 'comint))
(define-key comint-mode-map (kbd "<up>") 'comint-previous-input)
(define-key comint-mode-map (kbd "<down>") 'comint-next-input))

相关内容