如何在Emacs中显示所有minibuffer命令的历史记录?

8
我发现我可以通过在迷你缓冲区中使用"M-p"来返回命令历史记录。但是我想看到我在迷你缓冲区中使用的所有命令。
谢谢。
4个回答

5
变量是command-history,而不是minibuffer-history
您可以使用M-x list-command-history。如果您想查看整个历史记录,请自定义选项list-command-history-max
或者直接查看变量command-history,使用C-h v。但请注意选项history-length,它控制在command-history中保留多少个命令。

4

它保存在minibuffer-history变量中。 要查看图形界面,请使用helm包中的helm-minibuffer-history


我在scratch缓冲区中输入了"minibuffer-history",然后按下"C-j"。但是它只显示了("7" "8" " " "=>" "%d " "204" "188" "%1d " "1" "777" "wdired")。这是什么意思? - Kei Minagawa
这是您的 minibuffer 历史记录列表。这不是您期望的吗? - abo-abo
是的,那不是我预期的。看起来这是我输入“C-x r N”时的历史记录。我忘记了那是什么时候。但从那时起,我输入了更多的命令。左边的去哪了? - Kei Minagawa
"M-x list-command-history" 看起来是有效的。但它并没有显示 minibuffer 的所有历史记录。 - Kei Minagawa

4
这里介绍了如何重复执行上一个命令以及查看历史命令:这里

M-x list-command-history

显示完整的命令历史记录,按照最近使用的顺序列出所有可以通过使用命令 C-x <ESC> <ESC> 来重复执行的命令。

这里则说明了如何设置 minibuffer 历史记录的最大长度:

变量 history-length 指定了 minibuffer 历史记录列表的最大长度;当添加新元素时,如果列表太长,则会删除最旧的元素。如果值为 t,则没有最大长度限制。


0
如果您使用 Helm,则应该是这样的:
(define-key minibuffer-local-map (kbd "C-c C-l") 'helm-minibuffer-history)

selectrum + consult 的等效版本:

(define-key minibuffer-local-map (kbd "C-c C-l") 'consult-history)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接