我在 Ubuntu 上处于终端模式,并且正在运行 emacs,其中打开了 2 个缓冲区,一个是 ruby 文件,另一个是 shell(通过键入 Mx shell 打开),当我切换到 shell 缓冲区时,我想运行之前运行的相同命令。我通常只需在终端窗口中单击向上箭头,但在 emacs 中,它只会将光标向上移动一行。
有人知道在 emacs shell 中运行上一个 shell 命令的按键吗?
答案1
M-p
完成工作
答案2
除了 之外M-p,您还可以使用C-up,我觉得这种方法更可取。互补键M-n或C-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))