emacs+;clojure+;查找函数的定义 问题陈述:

emacs+;clojure+;查找函数的定义 问题陈述:,emacs,clojure,Emacs,Clojure,我正在用Lein+Emacs编写Clojure(和一些ClojureScript)代码 我希望能够跳转到任意函数的定义 例如,假设我执行“C-x魔术键笔划矩形->区域”,那么我希望它跳到: src/rect.clj, line 20, which has the content: (defn rect->area [] ... ) 问题: 如何在Emacs/Clojure中实现上述目标 编辑: 我在最初的问题上撒了点谎。我没有使用clj+cljs 我正在使用cljx(),它执行clj

我正在用Lein+Emacs编写Clojure(和一些ClojureScript)代码

我希望能够跳转到任意函数的定义

例如,假设我执行“C-x魔术键笔划矩形->区域”,那么我希望它跳到:

src/rect.clj, line 20, which has the content:
  (defn rect->area [] ... )
问题: 如何在Emacs/Clojure中实现上述目标

编辑: 我在最初的问题上撒了点谎。我没有使用clj+cljs

我正在使用cljx(),它执行cljx->clj/cljs


因此,“nrepl”解决方案的效果不如读取源代码的解决方案好。(也就是说,我想让它跳转到*.cljx文件,而不是*.clj文件)。

如果滚动到底部,您将看到:

如果你想跳转到函数的源代码,你可以使用M-,这太棒了。这适用于您自己的函数以及来自第三方库的函数。使用M-,弹出堆栈并返回到原来的位置


这有帮助吗?

注意,您需要为
M-.
运行nrepl连接才能进行工作编辑:我正在使用cljx,我在最初的问题中没有提到这一点。因此M-。最终命中生成的文件,而不是源文件。@user1985576我使用IntellijIDEA和CursiveClojure插件(以前使用LaClojure)编写Clojure。如果您查看CursiveClojure站点,您会发现您可以模拟Emacs环境,但要立即跳转到任何函数的源代码,我只需在按住Ctrl键的同时单击鼠标即可。Cursive看起来棒极了,不久前曾尝试过切换。然而,我还没有准备好跳转,我正在寻找一个纯emacs解决方案。@edbond为什么它需要一个运行的nrepl?