clojure开发需安装clojure插件实现语法高亮与括号匹配,用sublimerepl连接外部repl运行代码,设4空格缩进禁用tab,并配置clojure-lsp支持lsp功能。

安装 Clojure 语言支持插件(Package Control + Clojure)
Sublime Text 本身不内置 Clojure 支持,得靠第三方插件补全语法高亮、括号匹配和基本补全。最常用的是 Clojure 插件(作者:tonyjwilliams),不是 Clojure-Kit 或 Parinfer —— 后两者功能重叠但配置更重,新手容易卡在 Parinfer 的自动重排上。
- 打开命令面板(
Ctrl+Shift+P / Cmd+Shift+P),输入 Package Control: Install Package 回车
- 搜索
Clojure,选中安装(注意看作者名,避免装错成已弃用的旧版)
- 安装后,新建文件 →
Ctrl+Shift+P → 输入 Set Syntax: Clojure,或保存为 .clj 后缀,自动生效
- 如果括号不配对高亮,检查是否被
BracketHighlighter 类插件干扰;Clojure 插件自带 rainbow parentheses 逻辑,无需额外开
运行 Clojure 代码不能靠 Sublime 自带 Build System
Sublime 的 Tools → Build 默认不认 clojure 命令,硬配 clojure -M -e "(println \"hi\")" 看似能跑,但实际会卡住、不读取项目依赖、无法热重载——本质是把 REPL 当脚本解释器用了。
- 真正可行的方式是:用外部 REPL(如
clojure -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}}' -M)保持常驻,再通过插件连接它
- 推荐插件:
SublimeREPL(支持 Clojure 子类型),安装后 Ctrl+Shift+P → SublimeREPL: Clojure,它会自动调起 lein repl 或 clj(取决于你 PATH 里哪个可用)
- 注意:如果提示
repl command not found,说明没装 clojure CLI 工具(不是 Leiningen),去 clojure.org 下载安装,别只装 Leiningen
括号匹配与缩进容易错位,根源在 Tab 设置
Clojure 对缩进极其敏感,defn 里多一个空格、少一个换行,clojure-lsp 可能不报错但 REPL 加载失败。Sublime 默认的 detect_indentation 在 .clj 文件里经常误判为 tab,而社区约定是 **4 个空格、禁用 tab**。
- 打开
Preferences → Settings – Syntax Specific(确保当前是 Clojure 语法)
- 加入这两行:
"tab_size": 4,<br>"translate_tabs_to_spaces": true
- 关键点:
detect_indentation 必须设为 false,否则打开老项目时 Sublime 会按文件里第一个缩进猜规则,一不小心就混入 tab
- 如果已有文件缩进混乱,全选 →
Ctrl+Shift+P → Convert Indentation to Spaces,再手动删掉残留 tab 字符(显示为 →)
想用 LSP 补全和跳转?clojure-lsp 是唯一靠谱选择
Sublime 的 LSP 插件可以对接 clojure-lsp,提供函数跳转、参数提示、依赖查找,但配置比 VS Code 多一步:它不自动下载 server,得手动指定路径。
- 先装
LSP 插件,再终端执行:curl -L <a href="https://www.php.cn/link/f26bf5fcaf7b6a6483f8c9e4c5551ba6">https://www.php.cn/link/f26bf5fcaf7b6a6483f8c9e4c5551ba6</a> -o lsp.zip && unzip lsp.zip && chmod +x clojure-lsp(macOS/Windows 替换对应二进制名)
- 把
clojure-lsp 放进 $PATH,或在 LSP.sublime-settings 里写死路径:"clients": {<br> "clojure-lsp": {<br> "command": ["/home/you/bin/clojure-lsp"]<br> }<br>}
- 容易漏的点:
clojure-lsp 需要项目根目录有 deps.edn 或 project.clj 才启动;空文件夹里开 Sublime,LSP 图标不亮,不是插件坏了,是它根本没起来
Ctrl+Shift+P / Cmd+Shift+P),输入 Package Control: Install Package 回车 Clojure,选中安装(注意看作者名,避免装错成已弃用的旧版) Ctrl+Shift+P → 输入 Set Syntax: Clojure,或保存为 .clj 后缀,自动生效 BracketHighlighter 类插件干扰;Clojure 插件自带 rainbow parentheses 逻辑,无需额外开 Tools → Build 默认不认 clojure 命令,硬配 clojure -M -e "(println \"hi\")" 看似能跑,但实际会卡住、不读取项目依赖、无法热重载——本质是把 REPL 当脚本解释器用了。
- 真正可行的方式是:用外部 REPL(如
clojure -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.12.0"}}}' -M)保持常驻,再通过插件连接它 - 推荐插件:
SublimeREPL(支持 Clojure 子类型),安装后Ctrl+Shift+P→SublimeREPL: Clojure,它会自动调起lein repl或clj(取决于你 PATH 里哪个可用) - 注意:如果提示
repl command not found,说明没装clojureCLI 工具(不是 Leiningen),去 clojure.org 下载安装,别只装 Leiningen
括号匹配与缩进容易错位,根源在 Tab 设置
Clojure 对缩进极其敏感,defn 里多一个空格、少一个换行,clojure-lsp 可能不报错但 REPL 加载失败。Sublime 默认的 detect_indentation 在 .clj 文件里经常误判为 tab,而社区约定是 **4 个空格、禁用 tab**。
- 打开
Preferences → Settings – Syntax Specific(确保当前是 Clojure 语法)
- 加入这两行:
"tab_size": 4,<br>"translate_tabs_to_spaces": true
- 关键点:
detect_indentation 必须设为 false,否则打开老项目时 Sublime 会按文件里第一个缩进猜规则,一不小心就混入 tab
- 如果已有文件缩进混乱,全选 →
Ctrl+Shift+P → Convert Indentation to Spaces,再手动删掉残留 tab 字符(显示为 →)
想用 LSP 补全和跳转?clojure-lsp 是唯一靠谱选择
Sublime 的 LSP 插件可以对接 clojure-lsp,提供函数跳转、参数提示、依赖查找,但配置比 VS Code 多一步:它不自动下载 server,得手动指定路径。
- 先装
LSP 插件,再终端执行:curl -L <a href="https://www.php.cn/link/f26bf5fcaf7b6a6483f8c9e4c5551ba6">https://www.php.cn/link/f26bf5fcaf7b6a6483f8c9e4c5551ba6</a> -o lsp.zip && unzip lsp.zip && chmod +x clojure-lsp(macOS/Windows 替换对应二进制名)
- 把
clojure-lsp 放进 $PATH,或在 LSP.sublime-settings 里写死路径:"clients": {<br> "clojure-lsp": {<br> "command": ["/home/you/bin/clojure-lsp"]<br> }<br>}
- 容易漏的点:
clojure-lsp 需要项目根目录有 deps.edn 或 project.clj 才启动;空文件夹里开 Sublime,LSP 图标不亮,不是插件坏了,是它根本没起来
Preferences → Settings – Syntax Specific(确保当前是 Clojure 语法) "tab_size": 4,<br>"translate_tabs_to_spaces": true
detect_indentation 必须设为 false,否则打开老项目时 Sublime 会按文件里第一个缩进猜规则,一不小心就混入 tab Ctrl+Shift+P → Convert Indentation to Spaces,再手动删掉残留 tab 字符(显示为 →) LSP 插件可以对接 clojure-lsp,提供函数跳转、参数提示、依赖查找,但配置比 VS Code 多一步:它不自动下载 server,得手动指定路径。
- 先装
LSP插件,再终端执行:curl -L <a href="https://www.php.cn/link/f26bf5fcaf7b6a6483f8c9e4c5551ba6">https://www.php.cn/link/f26bf5fcaf7b6a6483f8c9e4c5551ba6</a> -o lsp.zip && unzip lsp.zip && chmod +x clojure-lsp(macOS/Windows 替换对应二进制名) - 把
clojure-lsp放进$PATH,或在LSP.sublime-settings里写死路径:"clients": {<br> "clojure-lsp": {<br> "command": ["/home/you/bin/clojure-lsp"]<br> }<br>} - 容易漏的点:
clojure-lsp需要项目根目录有deps.edn或project.clj才启动;空文件夹里开 Sublime,LSP 图标不亮,不是插件坏了,是它根本没起来
Clojure 开发环境的核心矛盾从来不是“能不能写”,而是“括号结构是否被准确识别”和“REPL 是否真正连上项目上下文”。很多问题表面是 Sublime 配置失败,实际是 clojure CLI 没装、deps.edn 路径不对、或者缩进里混了不可见字符——查的时候优先盯住这三处。










