繁体   English   中英

如何绑定一个键来杀死repl并在emacs上的缓冲区中猛拉

[英]How to bind a key to kill repl and yank in a buffer on emacs

您可以假设我使用粘液模式进行repl。

如何创建一个功能键(例如, f4 )来执行此操作:

  1. 杀死最后一个历史项目(你用C-upC-down获得的那个);
  2. 移动到上部缓冲区;
  3. 猛拉,保存缓冲区到文件;
  4. 回到repl。

请将它作为一步一步的指南,因为我是Emacs和Lisp的完全初学者。

做出你要求的最简单的方法是使用emacs宏

为什么? 因为你刚刚说出了你想要做的事情。 并且宏保存您键入的键序列。 您可以在emacs中执行一次,并保存按下的键序列。

因此,使用F3Cx (开始录制宏(当你在repl缓冲区时) Cx (然后制作像Mp Ca Ck Cu - Cx o Cy Cx o (我刚刚将你的请求翻译成关键序列),然后键入F4Cx ) 要执行宏,请再次按F4Cx 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 fCh aCh b等帮助键也将被使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM