[英]How to bind a key to kill repl and yank in a buffer on emacs
您可以假设我使用粘液模式进行repl。
如何创建一个功能键(例如, f4
)来执行此操作:
C-up
或C-down
获得的那个); 请将它作为一步一步的指南,因为我是Emacs和Lisp的完全初学者。
做出你要求的最简单的方法是使用emacs宏 。
为什么? 因为你刚刚说出了你想要做的事情。 并且宏保存您键入的键序列。 您可以在emacs中执行一次,并保存按下的键序列。
因此,使用F3
或Cx (
开始录制宏(当你在repl缓冲区时) Cx (
然后制作像Mp Ca Ck Cu - Cx o Cy Cx o
(我刚刚将你的请求翻译成关键序列),然后键入F4
或Cx )
。 要执行宏,请再次按F4
或Cx e
。
如果你弄乱了Cg
你可以中断录制宏。 反过来应用,如果你弄乱了并且发送了错误信息,你的宏录制(有时令人沮丧)或评估(这是功能,因为你可以通过仅仅按住F4
使宏工作得很好)将被中断。
如果以后要使用此宏,可以使用Mx name-last-kbd-macro
。 这将允许您用作命令,键入Mx <your macro name>
( <your macro name>
- <your macro name>
)。 这不会为将来的会话保存它,只需命名即可。
要保存命名宏,请在.emacs
文件中使用Mx insert-kbd-macro
。 这将在当前点插入elisp代码,执行将您的宏绑定到您的命令名(并且它将在每次启动emacs时执行)。
要将它绑定到某个键,而不是每次从Mx
启动它,将其插入到.emacs
文件中: (global-set-key [f12] '<your-macro-name>)
。 您可以阅读有关在那里和那里设置键的命令的更多信息。
关于宏的坏处是你将撤消每一步,而不是一次撤消整个宏(但有人可以在这里解决,如果他有一个)。 如果你想使用条件或迭代来做一些更严肃的事情,你必须转发你的路径到elisp。 只是Ch k
周围的一切。 Ch f
, Ch a
, Ch b
等帮助键也将被使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.