sublime text 运行 kotlin 脚本需配置 kotlinc -script 构建系统,验证命令可用性、确保 path 正确、安装 languagekotlin 插件并重启 sublime。

Sublime Text 不能运行 Kotlin 脚本(.kts),除非你明确配置了 kotlinc -script 构建系统——用 kotlinc 编译 .kts 文件、或误配成 kotlin 命令,99% 会失败或静默退出。
验证 kotlinc -script 是否可用
这是唯一支持 .kts 的官方方式。别信“kotlin hello.kts”这种写法——Sublime 不带 kotlin 运行时,且新版 Kotlin(≥1.9)已弃用该命令。
- 打开终端(不是 Sublime 内置 console),执行:
kotlinc -script -version,应输出版本号;若报command not found,说明 Kotlin CLI 没装对或没进PATH -
kotlinc -script不依赖main()函数,直接执行顶层表达式(如println("OK")),但不支持跨文件引用或 Gradle 依赖 - Windows 用户注意:
kotlinc.bat必须能全局调用;macOS/Linux 用户检查~/.zshrc中是否导出了kotlinc/bin目录
KotlinScript.sublime-build 必须用 kotlinc -script 而非 kotlin
很多教程抄错命令,把 kotlin 当作解释器,结果构建后无输出、无报错、也无进程——因为 Sublime 根本没找到这个命令。
- 新建 Build System(Tools → Build System → New Build System),粘贴以下内容(注意
selector是source.kotlin,大小写敏感):
{
"cmd": ["kotlinc", "-script", "$file"],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.kotlin",
"shell": true
}
-
"shell": true必须开启,否则&&或管道类写法会失效(虽然这里没用,但留着更安全) - 不要加
-include-runtime——kotlinc -script自动处理运行时,加了反而报错 - 路径含空格?必须确保
$file被 shell 正确解析;测试方法:在终端里手动跑kotlinc -script "/path/with space/test.kts"看是否成功
.kts 文件识别失败?检查 LanguageKotlin 插件和文件关联
Sublime 默认不识别 .kts 后缀,即使装了插件,也可能因 selector 冲突导致构建系统不触发。
- 确认安装的是
LanguageKotlin(作者 JetBrains),不是SublimeKotlin或带 “JetBrains” 字样的旧包——后者不定义source.kotlinselector - 新建一个
test.kts,右下角状态栏点语言名 → Open all with current extension as… → Kotlin - 如果
.kts仍被识别为 Plain Text,手动编辑插件的LanguageKotlin.sublime-settings,确保有:"extensions": ["kt", "kts"] - Android 开发者常开
build.gradle.kts,它默认不被高亮;同样右下角点语言名 → 强制设为 Kotlin 即可
最易忽略的点:Sublime 启动时只读一次环境变量,改完 PATH 或装完 Kotlin CLI 后,必须彻底关闭并重启 Sublime,否则 kotlinc -script 在构建系统里永远“不存在”。











