Sublime Text 4 无法使用已停止维护的 SublimeHaskell 插件,因其依赖过时的 Python 3.3 和废弃工具(ghc-mod/hdevtools);推荐组合方案:官方 Haskell 语法包 + SublimeLinter + hlint/ghc 检查器,并手动配置 PATH 以确保命令可达。

Sublime Text 本身不内置 Haskell 支持,SublimeHaskell 插件是目前最主流的集成方案,但它已停止维护,且在 Sublime Text 4 下默认无法安装或运行——直接装会报错 ImportError: No module named 'sublime_plugin' 或根本找不到插件。
SublimeHaskell 在 Sublime Text 4 上无法直接安装
官方仓库 SublimeHaskell 最后一次更新是 2019 年,依赖 Sublime Text 3 的 Python 3.3 运行时;Sublime Text 4 升级到 Python 3.8,API 有不兼容变更(如 sublime_plugin 模块结构重构)。Package Control 搜索到的版本实际是旧快照,安装后插件不会激活,控制台报错。
- 别在 Package Control 里搜 “SublimeHaskell” 直接 Install —— 装了也白装
- 手动克隆 GitHub 仓库并 symlink 到
Packages/也不行,缺少对view.settings().get()等新 API 的适配 - 即使强行 patch 部分 import,后续会卡在
hdevtools或ghc-mod兼容问题上(这两个工具本身也早已弃用)
替代方案:用 SublimeLinter + hlint + ghcide(推荐)
放弃 SublimeHaskell,转而组合轻量、仍在维护的组件。核心思路是:语法高亮靠语言包,错误检查靠 SublimeLinter,补全和跳转靠 LanguageClient-neovim 类思路的简化版 —— 实际可用的是 ghcide(现为 hls,Haskell Language Server)配合 SublimeLinter 和 EasyClangComplete 风格的触发逻辑。
- 先装
SublimeLinter和SublimeLinter-contrib-hlint:实时显示hlint建议(需系统已装hlint,cabal install hlint或stack install hlint) - 再装
SublimeLinter-contrib-ghc(注意不是ghc-mod):它调用ghc -fno-code检查类型错误,兼容 GHC 8.10+,不依赖已废弃的ghc-mod - 语法高亮用官方
Haskell语言包(Package Control 里搜 “Haskell” 安装即可,无需额外配置) -
ghcide/hls本身不被 Sublime 原生支持,但可通过subl .启动项目后,在终端手动跑haskell-language-server-wrapper --example查看诊断输出,作为补充参考
关键路径与权限问题(Windows/macOS/Linux 通病)
即使组件装对了,SublimeLinter 仍可能静默失败——根本原因是 Sublime 启动时没继承 shell 的 PATH,找不到 hlint 或 ghc。
- macOS:如果用 Homebrew 装的
haskell-language-server,路径通常是/opt/homebrew/bin/haskell-language-server,但 Sublime 默认只认/usr/bin;解决方法是在 Sublime 中按Cmd+Shift+P→Set Syntax: Haskell后,打开命令面板执行SublimeLinter: Show All Errors,看报错是否含command not found - Windows:确保
stack或ghcup的 bin 目录(如C:\Users\XXX\AppData\Roaming\local\bin)已加进系统环境变量PATH,且 Sublime 是从开始菜单或桌面快捷方式启动(而非 cmd 中执行subl,否则 PATH 继承混乱) - Linux:常见于使用
ghcup安装的用户,~/.ghcup/bin必须出现在$PATH中,且 Sublime 需从终端用subl &启动才能加载完整环境
真正能稳定工作的 Sublime Haskell 开发流,本质是“语法高亮 + linter 报错 + 手动命令行交互”,不要指望自动补全或一键跳转。如果需要这些,VS Code + Haskell 官方插件仍是当前唯一成熟选择;Sublime 里硬刚,最后卡住的几乎总是 hie-bios 配置或 stack.yaml 多项目解析失败——这些细节连 hls 文档都写得模糊,更别说 Sublime 插件去适配了。










