你可以假设我正在使用粘液模式进行repl。
如何创建功能键(例如f4
)来执行此操作:
C-up
或C-down
获得的项目); 请逐步指导,因为我是Emacs和Lisp的初学者。
答案 0 :(得分:9)
提出要求的最简单方法是使用emacs macros。
为什么呢? 因为你刚刚说出了你想要做的事情。 并且宏保存您键入的键序列。 您可以在emacs中执行一次,并保存按下的按键序列。
因此,使用F3
或C-x (
开始录制宏(当您在repl缓冲区中时),然后创建类似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>)
。您可以阅读有关设置键there和there的命令的详情。
关于宏的坏处是你将撤消每一步,而不是一次撤消整个宏(但有人可以在这里解决,如果他有一个)。如果你想使用条件或迭代来做一些更严肃的事情,你必须转发你的路径到elisp。只需C-h k
周围的一切。 C-h f
,C-h a
,C-h b
等帮助密钥也会被使用。