Calva 正常启动 REPL 的前提是系统已安装并可调用 clojure CLI 工具链,需在 VSCode 内置终端中运行 clojure -Sversion 成功;若失败,须检查 PATH 并重启 VSCode 或用 code . 启动。

Calva 能正常启动 REPL 的前提是系统里有可用的 Clojure 运行时,不是装了插件就能用——clojure 命令必须能在 VSCode 内置终端中直接执行,否则 Jack-in 会卡在 “Connecting to nREPL…” 或报 command 'clojure' not found。
确认 clojure CLI 已安装且可被 VSCode 读取
这是最常卡住的环节。Mac 用户执行 brew install clojure/tools/clojure,Windows 用户推荐 scoop install clojure,Linux 用户用官方脚本安装后,务必验证:
-
clojure -Sversion在系统终端输出版本(如1.12.0) - 在 VSCode 集成终端里也运行一次,若提示 command not found,说明 VSCode 没继承 shell 的 PATH —— 关闭并重开 VSCode,或从命令行用
code .启动项目目录 - 别混用
lein和clojure:如果项目根目录同时存在project.clj和deps.edn,Calva 默认走 Leiningen;想强制用 CLI,得删掉或重命名project.clj
只装 Calva,禁用所有其他 Clojure 插件
VSCode 扩展市场里那个名字就叫 Clojure(作者 avli)的插件,只会做基础语法高亮,和 Calva 功能重叠且冲突。装了它会导致:
- 括号匹配失效、Alt+Enter 求值无响应
- 跳转定义(Ctrl+Click)跳到错误位置甚至崩溃
- 状态栏不显示 Calva REPL 标识,底部终端始终停在
user=>而非项目命名空间(如myproject.core=>)
卸载 Clojure、Clojure-Kit、Parinfer 等任何非 Calva 的 Clojure 相关扩展,只保留 Calva(作者 BetterThanTomorrow)。
Jack-in 启动 REPL,别手动敲 lein repl 或 clojure -M
手动在集成终端里启动的 REPL,Calva 完全无法识别,也无法实现代码求值、跳转、内联显示等功能。
- 打开项目根目录(含
deps.edn或project.clj),不是单个.clj文件 - 按 Cmd+Shift+P(Mac)或 Ctrl+Shift+P(Win/Linux),输入
Calva: Jack-in并回车 - 若项目用
deps.edn但 Jack-in 后仍进裸 REPL(user=>),检查是否漏了src/目录或deps.edn里没声明:paths ["src"] - 想加载
:dev别名?Jack-in 时选 “Clojure CLI with aliases”,再输入dev,别改deps.edn里的:default-aliases—— Calva 不读这个
Mac M 系列用户注意 JVM 堆内存报错
遇到 Could not reserve enough space for 2097152KB object heap,是默认 JVM 参数在 Apple Silicon 上分配过大导致的。
- 在项目根目录下创建
.vscode/settings.json - 写入:
{"calva.jvmArgs": ["-Xmx1g"]} - 重启 Jack-in,问题消失
这个参数容易被忽略,因为错误发生在 JVM 层,而日志里 Calva 只显示 “Starting nREPL server…” 卡住,看不出是内存配置问题。


















