繁体   English   中英

如何将一行代码复制到REPL缓冲区并立即执行它,在Emacs中?

[英]how to copy a line of code to the REPL buffer and immediately execute it, in Emacs?

在使用2个缓冲区进行调试期间(左侧是“编辑缓冲区”,右侧是“执行缓冲区”)我经常遇到需要将一行代码从“编辑缓冲区”复制到“执行缓冲区”的情况。并立即执行它(可能没有离开“编辑缓冲区!)。

是否存在绑定? 如果没有,我该如何创建一个?

可能值得询问您使用的是哪种语言以及使用何种语言或REPL。 例如,如果您使用Slime with Common Lisp,那么通常不需要转到实际的REPL缓冲区来评估代码。 在您的代码缓冲区中,您可以将点放在Lisp表单的末尾,然后执行Cx Ce - 在emacs-lisp-mode中评估表单的相同绑定 - 它将在REPL中对其进行评估。 我不记得了,但CMx可能在使用Slime的Common Lisp缓冲区中的工作方式与通常使用Emacs Lisp一样。

至少其他一些模式的工作方式相同 - 在shen模式的缓冲区中,你可以使用相同的方式使用相同的方式进行活动的下级会话,并且我也使用了同样的方案。 我认为如果你有一个较差的REPL,相应的语言模式将重新绑定这些键来评估REPL中的表单,这是相当标准的。

对于它可能值得...

选择要执行的行和Cc Cr通常可以完成这项工作。 如果hook存在。

我不知道现有的绑定,但你可以轻松地创建一个宏来移动到另一个窗口,猛拉并向后移动。 整个过程将是:

  1. 启动宏Cx (
  2. 移动到另一个窗口Cx o
  3. Yank Cy
  4. 向后移动1个窗口Cu -1Cx o
  5. 停止宏录制Cx )
  6. 将宏命名为Cx Ck n yank-other-window

接下来,您要保存该函数并将其绑定到启动Emacs时加载的ELisp文件中的键:

  1. 将宏插入文件Mx insert-kbd-macro <RET> yank-other-window <RET>
  2. 绑定到一个键(global-set-key [CM-.] 'yank-other-window)

暂无
暂无

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

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