calva 是当前 vscode 上 clojure 开发唯一能开箱即用的完整方案,但必须先安装 clojure cli 工具链并验证 clojure -sversion 成功,否则 jack-in 会卡在“connecting…”;安装后需重启 vscode,且不可与其他 clojure 插件共存。

Calva 是当前 VSCode 上 Clojure 开发唯一能开箱即用的完整方案,装完扩展不配 clojure CLI 工具链,REPL 就起不来——不是插件问题,是根本没运行时。
必须先装好 clojure CLI,否则 Calva 会卡在 “Connecting…”
VSCode 里点 Jack-in 没反应、状态栏一直显示 “Starting REPL…”、终端空转几秒后报错 command 'clojure' not found,基本都是这个原因。
- macOS:终端运行
brew install clojure/tools/clojure,然后确认clojure -Sversion能输出版本(如1.12.0) - Windows:用
scoop(推荐):scoop install clojure;或去 clojure.org 下载官方脚本安装 - Linux:用
curl -O https://download.clojure.org/install/linux-install-1.12.0.sh && chmod +x linux-install-1.12.0.sh && sudo ./linux-install-1.12.0.sh - 装完后别忘了关掉再重开 VSCode 内置终端——它不会自动继承新 PATH
Calva 安装后要重启 VSCode,且不能和其它 Clojure 插件共存
你可能搜到 “Clojure”(作者 clojure)、“Clojure-Kit” 或 “Parinfer”,这些要么只做语法高亮,要么和 Calva 的括号管理冲突,导致 Alt+Enter 求值失败、括号自动补全错位、甚至编辑器卡死。
- 只装
Calva(作者 BetterThanTomorrow),别装任何其他 Clojure 相关扩展 - 安装后必须重启 VSCode,否则
Cmd+Alt+C J(macOS)或Ctrl+Alt+C Ctrl+Alt+J(Win/Linux)快捷键不生效 - 如果已装过旧版 Calva,先禁用再重装——某些 v2.x 升级后残留配置会干扰 nREPL 连接
项目根目录下没有 deps.edn,Jack-in 会默认启动裸 REPL,加载不了你的代码
你写了个 src/hello.clj,光标放进去按 Alt+Enter 却提示 Unable to resolve symbol: hello,大概率是因为 Calva 没识别出项目上下文。
- 新建空文件夹,进终端执行:
clojure -Tnew app :name myproject(生成标准 deps.edn + src/ 结构) - 手动创建
deps.edn至少得有:{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}} - 确保 VSCode 是用 “File → Open Folder” 打开整个项目根目录,而不是只打开单个
.clj文件 - 打开
deps.edn后右键 → “Calva: Load Current File in REPL”,让 Calva 预热依赖解析
括号缩进一乱,defn 和 let 就直接报错,但错误信息根本不提缩进
Clojure 不靠大括号定作用域,全靠缩进对齐表达式层级。VSCode 默认设置在 .clj 文件里容易误判为 tab 缩进,而社区强制要求 4 空格、禁用 tab。
- 打开命令面板(
Cmd+Shift+P),输入Preferences: Configure Language Specific Settings...,选Clojure - 加入这两行:
"editor.tabSize": 4,"editor.insertSpaces": true
- 关掉
editor.detectIndentation(设为false),否则老项目里混着 tab 会污染整个工作区 - 已有文件缩进混乱?全选 →
Cmd+Shift+P→ “Convert Indentation to Spaces”,再手动删掉残留的→字符(那是 tab 的可视化表示)
Ctrl+Click 跳不到源码,其实只是因为刚连上 REPL 后没等几秒就急着点,nREPL 元数据还没加载完。等右下角出现 Connected to nREPL 并且输出窗口里有 user=> 提示符后再操作,稳得多。











