您可以假设我使用粘液模式进行repl.
如何创建一个功能键(例如f4)来执行此操作:
C-up或者C-down;请将它作为一步一步的指南,因为我是Emacs和Lisp的完全初学者.
做出你要求的最简单的方法是使用emacs宏.
为什么?因为你刚刚说出了你想要做的事情.并且宏保存您键入的键序列.您可以在emacs中执行一次,并保存按下的键序列.
因此,开始使用录制宏(当你在REPL缓冲区)F3或C-x (,然后进行类似M-p C-a C-k C-u - C-x o C-y C-x o(我只是翻译你的请求按键序列),然后键入F4或C-x ).要执行宏,请F4再次按,或C-x e.
如果弄得乱七八糟,你可以打断录制宏C-g.反过来应用,如果你弄乱了并且发送了错误消息,你的宏录制(有时令人沮丧)或评估(这是功能,因为你可以通过持有使宏工作得很好F4)将被中断.
如果您想稍后使用此宏,可以使用此命名M-x name-last-kbd-macro.这将允许您用作命令,键入M-x <your macro name>(<your macro name>- 宏的名称).这不会为将来的会话保存它,只需命名即可.
要保存命名宏,M-x insert-kbd-macro请在.emacs文件中使用.这将在当前点插入elisp代码,执行将您的宏绑定到您的命令名(并且它将在每次启动emacs时执行).
要将它绑定到某个键,而不是每次启动它M-x,将其插入到您的.emacs文件中:(global-set-key [f12] '<your-macro-name>).您可以阅读有关在那里和那里设置键的命令的更多信息.
关于宏的坏处是你将撤消每一步,而不是一次撤消整个宏(但有人可以在这里解决,如果他有一个).如果你想使用条件或迭代来做一些更严肃的事情,你必须转发你的路径到elisp.只是C-h k周围的一切.像帮助键C-h f, C-h a,C-h b也会进来使用.