Answers:
关于' describe-last-function ':
有一个变量last-command
设置为代表您所做的最后一件事情的符号。因此,这个elisp片段- (describe-function last-command)
应该提起立即发生的事情的文档。
这样您就可以describe-last-function
像这样简单地工作
(defun describe-last-function()
(interactive)
(describe-function last-command))
放入elisp .emacs
或等效名称,您将获得Mx describe-last-function。
如果您自感兴趣以来就敲了几个键或做了一些修改了last-command的操作,则该command-history
功能可能很有趣。您可以通过Mx命令历史记录来获取
repeat.el
Emacs Lisp软件包提供了重复功能,该软件包包含在标准Emacs发行版中。从repeat.el
的文档:
该程序包定义了一个命令,该命令将重复先前的命令,无论该命令是什么(包括其参数)都是什么。此命令已连接到键Cx z。要一次重复上一个命令,请键入Cx z。要立即重复第二遍,请仅输入z。通过一次又一次输入z,您可以一遍又一遍地重复该命令。
要查看有关repeat命令的更多信息,请C-h F repeat RET在Emacs中键入。
是的,有一个重复命令。叫做repeat
:
repeat-complex-command
钥匙绑定中没有人提到,这有点令人震惊C-x ESC ESC。
C-x M-:
(助记符:类似,M-:
但已经为您填充了elisp表达式)。
repeat.el
(由包含C-x z z z...
)提供的可能性第二近。问第二个问题,关于最后一次击键是哪个,最好的答案是C-h l
(view-lossage
)。恕我直言,describe-last-command
命令几乎没有用。
C-x M-:
用作键盘宏的一部分,这很方便。默认repeat-complex-command
绑定有点麻烦,无法一遍又一遍地键入。
也许这也会有所帮助...来自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.
我个人认为塞巴斯蒂安的想法很有用。这是一个工作版本
(global-set-key "\C-r" #'(lambda () (interactive)
(eval (car command-history))))
isearch
和isearch-backward
是重要的导航命令,并且默认情况下将后者绑定到<kbd> Cr </ kbd>,因此人们可能会发现重复命令的更好绑定。在Mac上,我建议使用Command(super)-Y,因为某些应用程序已经约定将其用作与“ undo”相反的约定。
(repeat)
和Cx Mz(repeat-complex-command)
。另请参阅(repeat-matching-complex-command)
。