Emacs中类似于Vim命令历史记录的功能(用于Meta-x命令输入)

6

问题:对于通过M-x键入的命令,我很难理解Emacs如何允许回想和重新运行这些命令。命令历史记录与Vim相当不同。它将命令放在缓冲区而不是“迷你缓冲区”中。

是否有办法获得类似于Vim的方法(即,可以使用箭头键向上/向下滚动以前键入的命令)?


我不确定你使用的是哪个版本的Emacs,但我的Emacs可以做到。 - Johannes Schaub - litb
我的也是(在OS X上使用Aquamacs)。在输入M-x后,上下键可以正常工作。 - ShreevatsaR
3个回答

15

C-x ESC ESC, C-x M-ESCC-x M-: 可以将你的历史记录放在minibuffer中,之后你可以用箭头键上下滚动查看。

M-x list-command-history 将整个历史记录放在一个缓冲区中,可执行命令。

C-x z 重复执行上一个命令。

请参考EMACS手册(info)的第8.5节 Minibuffer History


4

M-p和M-n是GNU软件中的经典历史导航键。 Emacs也不例外;在你可以输入内容的几乎所有地方都可以使用这些键。

对于扩展命令(“M-x命令”),按下M-x,然后自由浏览历史记录。您还可以像在bash中一样使用C-r进行反向历史记录搜索。


1

调用

customize-group minibuffer

它将显示一个选项历史记录长度(默认为30)。如果您想在emacs会话之间保存您的历史记录,请参见

customize-group savehist

您可以使用普通的箭头键 / 来浏览历史记录。


有人能告诉我 downvote 是如何判断的吗?更改历史记录长度会直接影响能否滚动浏览,对吧?我很乐意修复所有错误。 - Johannes Schaub - litb

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