问题标签 [eval-paste]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
256 浏览

emacs - 粘贴clojure评估结果时,如何使emacs键盘宏正常工作?

emacs lisp 有一个非常有用的功能,您可以在其中评估表达式的结果并将结果直接粘贴到缓冲区中。

假设我想检查附加作品。然后我输入:

我定义了键盘宏:

如果我然后将点放在表达式上方,然后按 F4 执行宏,则表达式变为:

这是一个很好的回归测试。

不幸的是,在 clojure/nrepl 缓冲区中执行的相同键盘宏会导致:

以及来自 clojure 的关于无法解析符号的错误is=

所以我认为事情的排序发生了一些奇怪的事情,宏正试图评估错误的事情。

任何人都可以让它与clojure一起使用吗?(实际上解决了一般问题,以便任意键盘宏可以C-u C-x C-e像使用 emacs lisp 一样正常工作)


编辑因为人们似乎误解了:

手动按键在 elisp 或 clojure 缓冲区中都可以正常工作。在一个带有 emacs lisp 的 Cu Cx Ce evals 和在外部 clojure 过程中的其他 evals 中。

尝试运行包含 Cu Cx Ce 的键盘宏(记录在 clojure 缓冲区中)时出现问题

在 clojure 缓冲区中运行宏,事情会以某种方式重新排序。即使 eval-paste 尚未完成,看起来宏可能仍在执行。

我想知道是否有一种方法可以强制键盘宏(或相应的功能)以与手动相同的顺序执行。

如有必要,我很乐意将键盘宏转换为适当的 elisp 函数。