我经常挖掘apropos和docs寻找类似下面的东西,只是为了放弃回到手头的任务:
(重复最后的命令)
执行我刚刚执行的最后一个C或M命令(要反弹到fn键)
或有时相关:
(描述-最后功能)
我错误地发出了什么击键,其效果我想加入我的技巧。 describe-key很接近,但需要知道我键入的内容。
我只是从我可信赖的伙伴那里问过多吗?
答案 0 :(得分:165)
重复功能由repeat.el
Emacs Lisp软件包提供,该软件包包含在标准Emacs发行版中。来自repeat.el
的文档:
这个包定义了一个命令 重复前面的命令, 无论那是什么,包括它 争论,无论他们是什么。这个 命令连接到密钥C-x z。 要重复上一个命令, 键入C-x z。再重复一遍 紧接着,输入z。通过 你可以一次又一次地输入z 一遍又一遍地重复命令。
要查看有关repeat命令的其他信息,请在Emacs中键入 C-h F repeat RET 。
答案 1 :(得分:150)
C-X ž
按下它后,只需按下即可 ž 之后,它将重复(无需再次按 C-x )。
答案 2 :(得分:75)
您可以使用 C-x z 重复命令,然后点击 z 继续重复。
有点令人震惊的人没有提到repeat-complex-command
,可以从键绑定 C-x ESC ESC 获得。
答案 3 :(得分:58)
关于' describe-last-function ':
有一个变量last-command
,它被设置为代表你做的最后一件事的符号。所以这个elisp片段 - (describe-function last-command)
- 应该提供有关事件的文档。
所以你可以像这样轻松地工作describe-last-function
(defun describe-last-function()
(interactive)
(describe-function last-command))
将该elisp放入.emacs
或同等版本中,您将拥有 M-x describe-last-function 。
如果您因为感兴趣的事情而攻击了几个键或者修改了last-command,那么command-history
函数可能会引起人们的兴趣。您可以通过 M-x命令历史记录
答案 4 :(得分:23)
此外,M-x view-lossage
会显示您输入的最后一百(?)次击键。所以,你将能够看到命令的位置。这是我使用的,直到我刚刚发现M-x command-history
,我认为我现在将使用C-h w
。
答案 5 :(得分:17)
我不太确定,但也许你正在寻找这个?
命令 C-x z (
repeat
)提供了另一种重复方式 Emacs命令多次。此命令重复以前的Emacs 命令,无论那是什么。重复命令使用相同的参数 以前用过的;它不会每次都读取新的参数。
Emacs手册,8.11重复命令
答案 6 :(得分:9)
也许这会有所帮助...... 来自emacs帮助逐字:
C-x M-ESC runs the command repeat-complex-command
which is an interactive compiled Lisp function in `simple.el'.
It is bound to <again>, <redo>, C-x M-:, C-x M-ESC.
(repeat-complex-command ARG)
Edit and re-evaluate last complex command, or ARGth from last.
A complex command is one which used the minibuffer.
The command is placed in the minibuffer as a Lisp form for editing.
The result is executed, repeating the command as changed.
If the command has been changed or is not the most recent previous command
it is added to the front of the command history.
You can use the minibuffer history commands M-n and M-p
to get different commands to edit and resubmit.
答案 7 :(得分:4)
我个人认为塞巴斯蒂安的想法很有用。这是一个工作版本
(global-set-key "\C-r" #'(lambda () (interactive)
(eval (car command-history))))
答案 8 :(得分:0)
这很旧,但是当我想要检索在Emacs提示符下键入的最后一个命令时,Google弹出窗口首先将其发布。这些答案对我都不起作用,因此我决定为那些后来可能像我一样偶然发现的人投入2美分。我正在使用Portacle,但是我在here中找到了所需的内容,因此希望它具有足够的通用性,可以用于不同的设置。无论如何,对我有用的是使用 C-↑和 C-↓循环浏览历史记录。使用 M-p 和 M-n 也可以,但是我更喜欢使用箭头,因为我使用了很多Bash。
答案 9 :(得分:0)