在 CIDER 中是否可以使用 M-。在没有 REPL 运行 的情况下跳转到定义?
In CIDER is it possible to use M-. to jump to definition without the REPL running?
此 CIDER 功能似乎仅在执行 cider-jack-in 后才起作用:
M-. Jump to the definition of a symbol. If invoked with a prefix
argument, or no symbol is found at point, prompt for a symbol.
当我打开一个新的 clj 文件时,它只显示 cider[未连接] M-.
组合键给了我 Wrong type argument: stringp, nil
是否可以在不启动和连接到 REPL 的情况下使用此功能?有没有其他方法可以在不使用 CIDER 的情况下获得相同的行为?
CIDER 没有这种能力,因为它使用附加到变量的元数据执行符号定义的查找:
> (defn x [] 0)
#'user/x
> (meta #'x)
{... :line <line_nuber>, :file <file_path> ...}
显然,要附加元数据,您需要启动 REPL 并评估符号定义。
如果没有 REPL,您可以尝试使用 rgrep
(将光标放在所需符号上之后):
M-x rgrep <RET>
但是,这只是文本搜索。它将为您提供指定目录中出现的所有符号(也没有命名空间解析)。
此 CIDER 功能似乎仅在执行 cider-jack-in 后才起作用:
M-. Jump to the definition of a symbol. If invoked with a prefix argument, or no symbol is found at point, prompt for a symbol.
当我打开一个新的 clj 文件时,它只显示 cider[未连接] M-.
组合键给了我 Wrong type argument: stringp, nil
是否可以在不启动和连接到 REPL 的情况下使用此功能?有没有其他方法可以在不使用 CIDER 的情况下获得相同的行为?
CIDER 没有这种能力,因为它使用附加到变量的元数据执行符号定义的查找:
> (defn x [] 0)
#'user/x
> (meta #'x)
{... :line <line_nuber>, :file <file_path> ...}
显然,要附加元数据,您需要启动 REPL 并评估符号定义。
如果没有 REPL,您可以尝试使用 rgrep
(将光标放在所需符号上之后):
M-x rgrep <RET>
但是,这只是文本搜索。它将为您提供指定目录中出现的所有符号(也没有命名空间解析)。