calva启动的repl即nrepl,内置兼容服务端,无需额外安装cider-nrepl或手动配置;必须通过calva: jack-in启动,手动执行lein repl或clojure -m会导致功能失效。

Calva 启动的 REPL 就是 nREPL,不需要额外装 cider-nrepl 或手动配 nrepl 依赖——它内置了兼容的 nREPL 服务端,只要工具链就位,Jack-in 会自动拉起带完整项目上下文的 nREPL 实例。
Jack-in 自动启动 nREPL,别手敲 lein repl 或 clojure -M
手动在集成终端里执行 lein repl 或 clojure -M 启动的 REPL,Calva 完全不识别:无法跳转定义、不能内联求值、Alt+Enter 没反应、状态栏不显示 Calva REPL 标识。
- 必须用命令面板(
Cmd+Shift+P/Ctrl+Shift+P)运行Calva: Jack-in - Jack-in 会自动调用
lein repl(有project.clj)或clojure -M(只有deps.edn),并注入项目类路径和 nREPL 中间件 - 成功后底部终端提示符应为
my-project.core=>,不是user=>;右下角状态栏出现 Calva 图标
project.clj 和 deps.edn 共存时,Calva 默认走 Leiningen
如果项目根目录同时存在 project.clj 和 deps.edn,Calva 会忽略 deps.edn,直接用 Leiningen 启动 nREPL。想强制走 CLI 工具链,得删掉或重命名 project.clj(比如改成 project.clj.bak)。
- 只留
deps.edn时,确保它至少包含基础依赖:{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}} - 若用 CLI 但 Jack-in 后仍是
user=>,检查是否漏了:paths ["src"],或src/目录不存在 - Leiningen 项目若卡在
Connecting to nREPL...,先确认project.clj里:profiles没误删:repl块(2.9+ 默认自带)
VSCode 找不到 lein 或 clojure 命令?不是插件问题,是 PATH 没生效
终端里能跑 lein -v 或 clojure -Sversion,但 VSCode 集成终端报 command not found,说明 VSCode 没读取 shell 的环境变量。这不是 Calva 的 bug,也无需重装插件。
- Mac 用户:从终端执行
code .打开项目目录(而不是从 Dock 或 Finder 启动 VSCode) - Windows 用户:确认
lein.bat所在目录已加进系统PATH,且该路径下没有同名的leinshell脚本干扰 - 所有平台:改完 PATH 后必须重启 VSCode,内置终端不会自动刷新环境
别装 “Clojure” 插件(作者 avli),它和 Calva 功能重叠且冲突
那个名字就叫 Clojure 的扩展(作者 avli)只做语法高亮,却会劫持括号匹配、快捷键绑定和文件关联逻辑,导致 Calva 的 Cmd+Enter 求值失效、括号错位、甚至编辑器卡死。
- 只保留 Calva(作者 BetterThanTomorrow),卸载所有其他 Clojure 相关插件
- 装完 Calva 必须重启 VSCode,否则快捷键(如
Ctrl+Alt+C Ctrl+Alt+J)不生效 - 若已装过旧版 Calva,建议禁用再重装,避免残留配置干扰 nREPL 连接
真正卡住的地方往往不是配置项写错,而是项目结构不标准(比如 src/ 缺失、deps.edn 没声明 :paths)、PATH 没被 VSCode 继承、或者多个 Clojure 插件在后台抢控制权——这些细节不排查清楚,再多的 settings.json 配置都白搭。











