calva 的 jack-in 是唯一可靠入口,手动启动 repl 无效;jack-in 失败需检查工具链 path、jdk、项目根目录、deps.edn 或 project.clj 配置、src 路径及命名空间声明;必须卸载冲突插件“clojure”并仅保留 calva。

Calva 的 Jack-in 是唯一能建立完整 REPL 上下文的入口,手动敲 lein repl 或 clojure -M 启动的终端 REPL 完全不被识别——求值、跳转、内联结果、命名空间加载等功能全部失效。
Jack-in 启动失败:卡在 “Connecting to nREPL…”
这不是 Calva 插件故障,而是 VSCode 找不到 Clojure 工具链或项目结构未被识别:
- 在系统终端运行
clojure -Sversion或lein -v能成功,但 VSCode 集成终端报command 'clojure' not found→ 是 PATH 没继承;必须用终端执行code .打开项目,或重启 VSCode - 终端和 VSCode 都报找不到命令 → 检查 JDK 是否安装(
java -version应输出 JDK 11 或 17);Mac M 系列若报Could not reserve enough space for 2097152KB object heap,需在.vscode/settings.json中加:"calva.jvmArgs": ["-Xmx1g"] - 项目根目录没打开(只双击打开了某个
.clj文件)→ 必须用 File → Open Folder 打开含deps.edn或project.clj的整个目录
REPL 启动后还是显示 user=>,不是项目命名空间
说明 Calva 没加载你的源码,只起了裸 REPL:
- 检查
src/目录是否存在且非空;文件如src/myapp/core.clj首行必须是(ns myapp.core) - 若用
deps.edn,确认有:paths ["src"];漏掉这行,Calva 就无法定位源码 - 若用
project.clj,确保含:source-paths ["src"]和标准:profiles {:dev {...}}结构(Leiningen 2.9+ 默认自带:repl块,别删) -
deps.edn和project.clj共存时,Calva 默认走 Leiningen;想强制用 CLI,得重命名或删掉project.clj
快捷键求值没反应,或内联结果不显示
多数情况与连接状态、光标位置或设置有关,而非快捷键冲突:
- 右下角状态栏必须显示
Calva REPL(不是 “Disconnected” 或空白);若显示user=>,先右键点击deps.edn→ “Calva: Load Current File in REPL” - 光标必须落在有效 S 表达式内部(如括号中、函数调用里),不能停在注释、空白行或字符串内
- macOS 用
Cmd+Enter,Windows/Linux 用Ctrl+Enter;Alt+Enter是“求值并打印”,Cmd+Alt+C/Cmd+Alt+L是加载整个文件 - 内联结果不出现?检查
calva.inlineResults是否为true;部分浅色主题会盖住灰色内联文字,换深色主题验证即可
最常被忽略却导致功能大面积失效的点
装了另一个叫 “Clojure” 的插件(作者 avli)——它会劫持括号匹配、快捷键绑定和文件关联逻辑,造成 Calva 的求值无响应、跳转失灵、甚至编辑器卡死。必须卸载它,只保留 Calva(作者 BetterThanTomorrow)。装完 Calva 后务必重启 VSCode,否则快捷键不会生效。











