在CIDER中可以使用M-。在没有REPL运行的情况下跳转到定义?

时间:2016-05-15 05:30:29

标签: emacs clojure cider

这个CIDER功能似乎只在执行cider-jack-in后才能工作:

  

M-。跳转到符号的定义。如果使用前缀调用   参数,或者在点上没有找到符号,提示符号。

当我打开一个新的clj文件并且只是说苹果酒[未连接]时,M-.键组合给了我Wrong type argument: stringp, nil

是否可以在不启动和连接REPL的情况下使用此功能?是否有其他方法可以在不使用CIDER的情况下获得相同的行为?

1 个答案:

答案 0 :(得分:2)

CIDER没有这样的能力,因为它使用附加到vars的元数据执行符号定义的查找:

> (defn x [] 0)
#'user/x
> (meta #'x)
{... :line <line_nuber>, :file <file_path> ...}

显然,要附加元数据,您需要启动REPL并评估符号定义。

如果没有REPL,您可以尝试使用rgrep(将光标放在需要的符号后):

M-x rgrep <RET>

但是,这只是一次文字搜索。它将为您提供指定目录中所有符号的出现(也没有名称空间解析)。