Sublime Text 运行 Clojure 需手动配置:确保 deps.edn 存在、PATH 包含 clj 命令、启动 nREPL 服务,否则 Ctrl+Enter 等功能均失效。

Ctrl+Enter 没反应、defn 不补全、括号不 rainbow 高亮——不是插件装错了,是 Sublime 根本没连上 nREPL,也没拿到你的 clj 命令路径。
装 Clojure 插件 ≠ 能跑 Clojure 代码
Sublime Text 自身不带 Clojure 运行时,Clojure 插件(作者 tonyjwilliams)只负责语法高亮、括号配对和基础缩进逻辑。它不启动 REPL,也不调用 clj 或 lein。如果你只装了这个插件就按 Ctrl+Enter,结果必然是静音。
- 新建
.clj文件后,右下角点 “Plain Text” → 选 “Clojure”,或手动Ctrl+Shift+P→Set Syntax: Clojure - 如果括号不 rainbow 高亮,先关掉
BracketHighlighter类插件——Clojure插件自带该功能,冲突反而失效 - 别碰
Parinfer:它会自动重排括号结构,导致ns加载失败、defn参数错位,新手踩坑率极高
clj 命令在终端能跑,Sublime 里却报 command not found
这不是插件配置问题,是 Sublime 启动时根本没继承 shell 的 PATH。macOS/Linux 用户从 Dock 点开 Sublime,环境变量极简;Windows 用户若把 clj.bat 装在中文路径或含空格目录(如 C:\Program Files\Clojure),也会被忽略。
- macOS/Linux:关掉 Dock 启动,改用终端执行
open -a "Sublime Text" --args或subl - Windows:把
clj安装到纯英文无空格路径(如C:/tools/clojure),并在插件设置中显式填完整路径:"clojure_cmd": ["C:/tools/clojure/clj.bat", "-M"] - 验证方法:
Ctrl+`打开 Python 控制台,输入import os; os.environ.get("PATH"),确认输出里有clj所在目录
nREPL 没手动起,所有快捷键都是摆设
ClojureSublimed 和 SublimeREPL 都只是 nREPL 客户端,不是服务端。没人在后台监听端口,它们连都连不上,Ctrl+Enter 发送的表达式只会丢进虚空。
- 项目根目录必须有
deps.edn(哪怕只写{:paths ["src"]}),否则插件识别不了项目结构 - 终端进入项目根目录,运行
clojure -M:nrepl(确保deps.edn里定义了:nrepl别名),别用lein repl——Conjure对它兼容差,ClojureSublimed更不认 -
ClojureSublimed用户:按Ctrl+Shift+P→ 输入ClojureSublimed: Start nREPL,不是靠快捷键自动连;检查插件设置里的:host和:port是否与 nREPL 启动日志一致(默认localhost:5555)
缩进错位、require 报 Unable to resolve symbol
Clojure 缩进不是风格问题,是语法语义的一部分。多一个空格、少一个换行,clojure-lsp 可能不报错,但 (require 'my.ns) 时直接抛 RuntimeException。
- 必须关闭自动检测:
"detect_indentation": false(加在Preferences → Settings – Syntax Specific,且当前语法为 Clojure) - 强制设为 4 空格:
"tab_size": 4和"translate_tabs_to_spaces": true - 已有文件混入 tab?全选 →
Ctrl+Shift+P→Convert Indentation to Spaces
最常被跳过的一步是:没确认 deps.edn 存在、没手动起 nREPL、没验证 PATH 是否生效。这三处任一缺失,整个 Clojure 开发链就断在第一环——不是编辑器不行,是你还没真正把它“接通”。


















