Sublime Text 可通过插件实现 Kotlin 语法高亮、基础补全和脚本构建,但无法替代 IntelliJ IDEA 进行大型项目开发;推荐安装官方 LanguageKotlin 包并配置构建系统运行 .kts 文件。

Sublime Text 本身不原生支持 Kotlin,但通过插件可以实现语法高亮、基础代码补全和构建运行。它不适合替代 IntelliJ IDEA 做大型 Kotlin 项目开发,但轻量编辑、快速查看或脚本类 Kotlin 文件(如 build.gradle.kts)完全够用。
Kotlin 语法高亮:安装官方语言包
Sublime 默认没有 Kotlin 支持,需手动安装语言定义包。最稳定的是社区维护的 SublimeKotlin,但它已多年未更新;更推荐使用官方认可的 PackageDev + LanguageKotlin 组合(后者由 JetBrains 官方 GitHub 仓库提供)。
- 打开
Command Palette(Windows/Linux 按Ctrl+Shift+P,macOS 按Cmd+Shift+P),输入Install Package并回车 - 搜索并安装
Package Control(若尚未安装) - 再次打开
Command Palette,输入Package Control: Install Package,搜索LanguageKotlin并安装 - 安装完成后,打开任意
.kt或.kts文件,右下角状态栏应显示Kotlin;若未自动识别,点击该区域手动选择Kotlin
文件关联与自动检测
Sublime 不会自动把所有 .kts(Kotlin Script)文件识别为 Kotlin,尤其 build.gradle.kts 这类文件可能被误判为 Groovy。需要手动设置作用域或修改配置:
- 打开一个
.kts文件 → 点击右下角语言名 → 选择Open all with current extension as...→ 再选Kotlin - 更彻底的方式:在
Preferences → Settings – Syntax Specific中添加:
{
"extensions": ["kt", "kts", "gradle.kts"],
"fallback_extension": "kotlin"
}
注意:gradle.kts 是完整扩展名,不是通配符;如需匹配所有 *.kts,得靠插件或手动切换。
构建系统:运行 Kotlin 脚本(需本地已装 kotlinc/jvm)
Sublime 的 Build System 可调用命令行编译器执行简单 Kotlin 脚本(.kts),但无法处理依赖或模块化项目。前提是已安装 kotlinc 并加入 PATH。
- 新建构建系统:
Tools → Build System → New Build System - 粘贴以下内容(适配 macOS/Linux;Windows 需改
shell_cmd中的路径或用cmd语法):
{
"shell_cmd": "kotlinc -script \"$file\"",
"file_regex": "^.*:(\\d+):(?:\\d+:)?\\s*(.*)$",
"selector": "source.kotlin"
}
- 保存为
KotlinScript.sublime-build,然后通过Tools → Build System选择它 - 对
.kts文件按Ctrl+B即可运行;输出中错误行能跳转(正则匹配了line:col格式) - 注意:
kotlinc -script仅适用于单文件脚本;含import或外部依赖时会失败
补全与 LSP(进阶但易踩坑)
想获得函数签名提示、跳转定义等 IDE 级功能?可以搭配 SublimeLSP 插件 + kotlin-language-server,但实际体验受限明显:
-
kotlin-language-server依赖 JVM 和 Gradle 工程结构,裸文件或非标准目录下基本不工作 - SublimeLSP 对 Kotlin 的
project root探测不稳定,常报No project found - 若坚持尝试:先用
npm install -g kotlin-language-server(需 Node.js),再在LSP.sublime-settings中配置kotlin服务,但建议只用于已有 Gradle 项目的根目录下 - 绝大多数用户只需高亮 + 手动构建,加 LSP 反而增加启动延迟和配置负担
真正卡住的点往往不是“怎么配”,而是误以为 Sublime 能替代 IntelliJ——它只是个编辑器,Kotlin 的类型推导、跨文件分析、Gradle 集成这些重活,必须交给专用工具。高亮配好,脚本能跑,就别强求补全了。










