【问题标题】:emacs + clojure + find definition of functionemacs + clojure + 查找函数定义
【发布时间】:2014-01-08 13:58:46
【问题描述】:

问题陈述:

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

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

例如,假设我执行“C-x magic-key-stroke rect->area”,那么我希望它跳转到:

src/rect.clj, line 20, which has the content:
  (defn rect->area [] ... )

问题:

我如何在 Emacs / Clojure 中实现上述目标?

编辑:

我在最初的问题中有点说谎。我没有使用 clj + cljs。

我正在使用 cljx (https://github.com/lynaghk/cljx) ,它执行 cljx -> clj/cljs。

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

【问题讨论】:

    标签: emacs clojure


    【解决方案1】:

    如果您滚动到底部here,您会看到:

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

    这有帮助吗?

    【讨论】:

    • 请注意,M-. 需要运行 nrepl 连接才能工作
    • 编辑:我正在使用 cljx,我在最初的问题中没有提到。因此M-。最终到达生成的文件,而不是源文件。
    • @user1985576 我使用 IntellijIDEA 和 CursiveClojure 插件(以前使用 LaClojure)编写 Clojure。如果您查看 CursiveClojure 站点 cursiveclojure.com ,您会发现您可以模拟 Emacs 环境,但我需要做的就是立即跳转到任何函数的源代码,同时按住 Ctrl 键并单击鼠标。
    • Cursive 看起来棒极了,不久前很想切换。但是,我还没有准备好进行跳跃,正在寻找纯 emacs 解决方案。
    • @edbond 为什么需要一个正在运行的 nrepl ?
    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2012-02-02
    • 2011-03-14
    相关资源
    最近更新 更多