calva 能让 vscode 运行 clojure 代码,但前提是 clojure 或 lein 命令在 vscode 内置终端中可直接执行;否则 jack-in 会卡在“connecting to nrepl…”,因缺失运行时而非插件故障。

calva.jack-in 启动失败:常见错误现象与定位
点 Calva: Jack-in 后状态栏一直显示 “Starting REPL…”、几秒后弹出 command 'clojure' not found 或 Unable to resolve symbol,基本都指向同一类问题:VSCode 找不到 Clojure 工具链。
- 在系统终端(如 iTerm、CMD)里能跑
clojure -Sversion或lein -v,但 VSCode 集成终端报command not found→ 是 PATH 没继承,重启 VSCode 或用code .从终端打开项目 - 终端和 VSCode 都报错 → 检查 JDK 是否装好:
java -version必须输出 JDK 11/17(JDK 8 已不推荐),Mac M 系列若报Could not reserve enough space for 2097152KB object heap,需在.vscode/settings.json加:"calva.jvmArgs": ["-Xmx1g"] - Jack-in 成功但 REPL 提示符是
user=>而非myproject.core=>→ 项目根目录缺少deps.edn或project.clj,或没用File → Open Folder打开整个目录(只打开单个.clj文件 Calva 不认上下文)
deps.edn 与 project.clj 共存时 Calva 怎么选?
Calva 默认优先识别 project.clj(Leiningen),哪怕你同时有 deps.edn。这不是 bug,是设计行为。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
- 想强制走 Clojure CLI(
deps.edn)→ 删除或重命名project.clj(比如改成project.clj.bak) - 想继续用 Leiningen → 确保
project.clj里有合法的:replprofile(Leiningen 2.9+ 默认自带,别手动删) - 两者都不想改 → Jack-in 时弹出菜单里可手动选 “Lein” 或 “Clojure CLI”,但必须提前确保对应工具在 PATH 中可用
求值失败:光标放对位置也不行?
按 Cmd+Enter(macOS)或 Ctrl+Enter(Win/Linux)求值失败,提示 Unable to resolve symbol,往往不是语法错,而是上下文没加载。
- 首次 Jack-in 后,先右键点击
deps.edn→ “Calva: Load Current File in REPL”,让 Calva 解析依赖并建立命名空间映射 - 确保文件路径符合约定:源码放在
src/目录下,且deps.edn里声明了:paths ["src"] - 写了个
src/hello.clj,但求值时报hello找不到 → 检查该文件第一行是否为(ns hello),且当前 REPL 提示符是hello=>(不是user=>)
为什么只留 Calva,卸载其他 Clojure 插件?
像名字就叫 Clojure(作者 avli)或 Clojure-Kit 的插件,不提供 REPL 连接能力,却会劫持括号匹配、求值快捷键、跳转定义等功能,导致行为错乱。
- 装了它们之后,
Cmd+Enter可能根本没反应,或把光标移到奇怪位置 -
Alt+Click跳转定义失效,括号自动补全错位,甚至编辑器卡死 - Calva 安装后必须重启 VSCode,否则
Ctrl+Alt+C Ctrl+Alt+J等快捷键不生效;已装旧版 Calva 的,建议先禁用再重装,避免残留配置干扰 nREPL 连接
deps.edn 没被读到、clojure 命令没进 VSCode 终端 PATH、或者多插件之间悄悄打架——这些细节不显眼,但一漏就整个流程断掉。










