Sublime Text需借助Leiningen与SublimeREPL插件运行Clojure,推荐La Clojure语法包替代原生包,并配置快捷键实现代码块发送;避免I/O阻塞、错误路径及未重启REPL导致的常见问题。

Sublime Text 本身不支持 Clojure 运行,必须依赖外部 REPL(如 clojure CLI 或 lein)和插件桥接;直接点说:它只是个带语法高亮和快捷键的编辑器,不是 IDE。
安装 Sublime 的 Clojure 插件(Leiningen + SublimeREPL 方案)
最稳定、低维护的组合是 SublimeREPL + Leiningen。注意:Clojure CLI(clojure 命令)在 SublimeREPL 中支持不完整,容易卡死或无法热重载,优先用 lein。
- 用 Package Control 安装
SublimeREPL(搜索即得) - 确保系统已安装
lein(运行lein version可验证) - 安装后按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入SublimeREPL: Clojure,选择Leiningen启动 REPL - 若提示
command not found: lein,说明 Sublime 没读到 shell 的 PATH —— macOS 用户需从终端启动 Sublime(subl .),Linux/Windows 用户检查是否将lein所在路径加入系统环境变量
配置 Sublime 的 Clojure 语法与快捷键
默认 Clojure 语法识别较弱,括号匹配、缩进、注释行为常出错。推荐切换为社区维护更积极的 La Clojure 或 Clojure-Sublime 包(非官方“Clojure”原生包)。
- 卸载自带的
Clojure语法包(Preferences → Package Settings → Clojure → 删除) - 通过 Package Control 安装
La Clojure(语法高亮准、括号自动补全好、支持#()和#{}等字面量) - 关键快捷键建议绑定(Preferences → Key Bindings):
[ { "keys": ["ctrl+enter"], "command": "repl_transfer_current", "args": {"scope": "block"} }, { "keys": ["ctrl+shift+enter"], "command": "repl_transfer_to_group", "args": {"scope": "toplevel"} } ] - 避免用
Tab缩进 Clojure ——La Clojure默认启用auto_indent,但手动 Tab 容易破坏结构;改用Ctrl+Shift+P→Indentation: Reindent Lines
运行代码时 REPL 卡住或无响应?检查这三点
常见现象是发送表达式后光标一直转圈、REPL 不返回结果、Ctrl+C 也无效 —— 大概率是阻塞在 I/O 或无限循环,不是插件问题。
- 确认没在 REPL 里执行了
(read-line)、(print)未换行、或未加flush的输出操作(SublimeREPL 不提供 stdin 输入通道) - 避免在顶层写
(defn foo [] (while true ...))—— 一求值就锁死整个 REPL 进程 - 如果用了
lein new创建项目,务必在项目根目录下启动 REPL(Ctrl+Shift+P→SublimeREPL: Clojure → Leiningen),否则require自定义命名空间会失败,报错FileNotFoundException
真正麻烦的是跨平台路径处理和 classpath 加载顺序 —— lein 的 project.clj 里 :source-paths 和 :resource-paths 写错一个斜杠,Sublime 就找不到 ns;别指望图形界面自动同步,每次改完都得重启 REPL。










