应安装languagekotlin插件,它由jetbrains官方维护,支持kotlin 1.8+新语法;需确保kotlinc和kotlin命令在终端可用,并为.kts文件手动设置语法识别。

Sublime里装哪个Kotlin语法插件才靠谱
别碰名字带“JetBrains”“SublimeKotlin”或标着Deprecated的插件——它们多年没更新,对 sealed interface、val 解构、inline class 等 Kotlin 1.8+ 语法识别全错,高亮乱套,甚至把 fun main() 当成普通函数不标为入口。
目前唯一稳定可用的是 LanguageKotlin(GitHub 来源:jetbrains/intellij-community),它由 JetBrains 官方维护,同步 Kotlin 编译器语法树。安装后打开 hello.kt,右下角状态栏必须显示 Kotlin;若仍为 Plain text,需手动点它 → Open all with current extension as → Kotlin。
注意:.kts 文件默认不被识别,包括 build.gradle.kts。打开任意 .kts 文件后同样手动切换一次语言,或在 Preferences → Settings – Syntax Specific 中加这段:
{
"extensions": ["kt", "kts", "gradle.kts"],
"fallback_extension": "kotlin"
}
kotlinc 和 kotlin 命令必须同时可用
Sublime 的 Build System 不会报 “kotlinc 没装”,只会静默失败或弹出 'kotlinc' is not recognized。验证方式只有一种:在终端(macOS/Linux 用 Terminal,Windows 用 CMD,不是 PowerShell)执行:
-
kotlinc -version→ 必须输出类似Kotlin Compiler 1.9.24 -
kotlin -version→ 必须输出类似Kotlin version 1.9.24
常见陷阱:
- 只装了 Android Studio 或用
brew install kotlin→ 通常只有kotlin(runtime),缺kotlinc(compiler) - Windows 用户改完 PATH 后没重启 Sublime → 它启动时读的是旧环境变量快照,永远找不到
kotlinc.bat - macOS/Linux 用了 zsh 但把路径写在
~/.bash_profile里 →source ~/.zshrc才生效
Build System 怎么写才能编译 + 运行不报错
网上流传的 JSON 常把编译和运行硬塞进一个 cmd 数组,用 && 连接。这在 Windows CMD 下直接失效(不认 &&),且路径含空格时引号转义全崩。正确做法是用 shell_cmd + 显式引号,并拆成 variants:
{
"shell_cmd": "kotlinc "$file" -include-runtime -d "${file_path}/${file_base_name}.jar"",
"file_regex": "^([^ ]+)\s+([0-9]+):([0-9]+):\s+(.*)$",
"selector": "source.kotlin",
"variants": [
{
"name": "Run",
"shell_cmd": "java -jar "${file_path}/${file_base_name}.jar""
}
]
}
关键点:
-
-include-runtime不可省,否则java -jar会报NoClassDefFoundError: kotlin/jvm/internal/Intrinsics - 输出路径用
${file_path}/...,避免编译产物散落在项目根目录 - Windows 用户若
kotlinc.bat不在 PATH,得写绝对路径,如"C:\kotlin\bin\kotlinc.bat"(双反斜杠) -
fun main()必须是顶层函数(不能包在 class 里),且文件名无需与类名一致(Kotlin 1.6+ 支持)
为什么 .kts 脚本总提示 “No main function”
因为 kotlinc -script 和普通 .kt 编译逻辑完全不同:.kts 是脚本模式,不需要 fun main(),代码从上到下直译执行。但 Sublime 默认不把它当 Kotlin 处理,更不会自动调 kotlinc -script。
要支持 .kts,必须单独建一个构建系统(如 kotlinscript.sublime-build):
{
"shell_cmd": "kotlinc -script "$file"",
"file_regex": "^(.*?):([0-9]+):([0-9]+): (.*)$",
"selector": "source.kotlin"
}
注意:
- 这个构建系统只适用于单文件脚本,不处理依赖
- 如果脚本里用了
import第三方库(如kotlinx.coroutines),kotlinc -script无法解析,必须换 Gradle -
.kts文件必须先手动设为 Kotlin 语法(右下角点选),否则selector不匹配,构建系统根本不会激活
kotlinc 和 kotlin 在终端能跑通,却忘了 Sublime 启动时根本没继承这个环境。改完 PATH,一定得关掉所有 Sublime 进程再重开。











