VSCode 配合 Calva、clojure-lsp、clj-kondo 和 zprint 可高效开发 Clojure。Calva 提供 REPL 集成与调试,clojure-lsp 支持智能补全,clj-kondo 做静态检查,zprint 自动格式化,组合使用体验媲美甚至优于 Emacs/Cider。

VSCode 配合合适的插件和工具链,完全可以胜任 Clojure 开发,体验接近甚至在某些方面优于传统 Emacs/Cider 环境——关键在于配置得当、理解各组件职责。
核心插件:Calva 是主力
Calva(Clojure & ClojureScript Interactive Programming)是目前 VSCode 上最成熟、维护活跃的 Clojure 插件。它不只提供语法高亮和括号匹配,更深度集成 REPL 工作流:
- 一键启动项目 REPL(支持 Leiningen、deps.edn、shadow-cljs)
- 实时求值代码块、当前表单、整个文件,结果直接内联显示
- 结构化查看数据(类似 Cider 的 pprint + inspect)、跳转到定义、查找引用
- 支持断点调试(需搭配 clj-kondo 和 clojure-lsp)
语言服务器:clojure-lsp 提升智能感知
Calva 本身不处理语义分析,需配合 clojure-lsp 提供代码补全、重命名、格式化等 LSP 功能:
- 安装 clojure-lsp(推荐用 brew install clojure-lsp 或下载二进制)
- 在 VSCode 设置中启用 “Clojure: Enable LSP”(Calva 设置项)
- 首次打开项目时自动索引依赖,后续编辑响应快、补全准,尤其对 deps.edn 项目友好
静态检查与格式化:clj-kondo + zprint
写 Clojure 时容易忽略括号嵌套或命名规范,clj-kondo 和 zprint 可自动把关:
- clj-kondo:轻量级静态分析器,标出未使用变量、错误的 ns 引用、潜在逻辑问题,VSCode 中以波浪线提示
- zprint:高度可配的格式化工具,支持按函数名、参数个数自动换行,Calva 内置支持,保存时自动美化代码
- 两者均可通过 deps.edn alias 快速集成,无需全局安装
小技巧让日常更顺手
一些实际开发中高频但容易被忽略的设置:
- 关闭 Calva 的“自动连接 REPL”(避免每次打开都弹窗),改用手动 Ctrl+Alt+C Ctrl+Alt+J 启动
- 用 Ctrl+Enter 求值光标所在表单,Alt+Enter 求值当前 top-level 表达式,效率远高于复制粘贴
- 开启 “Calva: Show Documentation on Hover”,悬停函数名即见 docstring 和源码位置
- 为测试快速运行配置快捷键:绑定 Calva: Run Tests in Current Namespace 到 Ctrl+T
基本上就这些。不需要折腾 Emacs 配置,也不用忍受老旧 IDE 的卡顿,VSCode + Calva 的组合对 Clojure 新手友好,对老手也足够强大——重点是别跳过 clojure-lsp 和 clj-kondo,它们才是真正让 Lisp 开发“活起来”的部分。










