必须安装jaredly维护的kotlin插件并手动绑定.kt/.kts后缀:安装后重启或执行set syntax: kotlin,右下角显示kotlin才算生效;若仍为plain text,需右下角点击→open all with current extension as…→kotlin完成绑定,且构建系统中selector必须为全小写的source.kotlin。

装对插件才能有高亮:只认 jaredly 的 Kotlin 包
Sublime Text 默认完全不认识 .kt 和 .kts,所谓“装了没反应”,90% 是因为插件装错了。必须卸载所有带 LanguageKotlin、SublimeKotlin、KotlinSupport 字样的包——它们要么 selector 冲突,要么已停更三年以上。
正确做法是:
- Ctrl+Shift+P → 输入
Package Control: Install Package回车 - 等几秒加载完列表,输入
Kotlin,只选作者为jaredly的那个(GitHub 活跃维护版) - 安装后必须重启 Sublime,或手动执行
Set Syntax: Kotlin - 打开任意
.kt文件,右下角状态栏必须显示Kotlin;若仍是Plain text,说明插件根本没加载
文件后缀不绑定=白屏:.kt 和 .kts 要分别手动指定
即使插件装对了,MyActivity.kt 还是灰白一片?这不是 bug,是 Sublime 压根没把后缀和语法关联上。它不看文件内容,只认后缀 + 显式绑定。
必须对两类文件分别操作:
- 打开一个
.kt文件 → 点右下角Plain text→Open all with current extension as…→ 选Kotlin - 再打开一个
build.gradle.kts→ 同样点右下角 →Open all with current extension as…→ 选Kotlin - 检查用户配置:菜单
Preferences → Settings – Syntax Specific,右侧 JSON 应含"syntax": "Packages/Kotlin/Kotlin.sublime-syntax"
别信“自动识别”——build.gradle.kts 常被误判为 Groovy,不手动绑定就永远高亮错乱。
运行 .kts 脚本必须用 kotlin 命令,不是 kotlinc
Sublime 本身不支持直接运行 Kotlin 脚本,必须靠 Build System 调用外部命令。但注意:Kotlin ≥1.9 已弃用 kotlinc 的脚本模式,kotlin 才是专为 .kts 设计的解释器。
构建配置要点:
-
cmd字段必须用kotlin,不是kotlinc;路径不能含空格(否则 shell 解析失败) - JVM 参数必须加
-J-Dfile.encoding=UTF-8,否则中文字符串会乱码 -
.kts文件只能用顶层表达式,不能写fun main()—— 那是.kt编译模式的写法 -
selector必须为全小写的source.kotlin(注意不是source.Kotlin或source.Konlin)
示例片段(保存为 KotlinScript.sublime-build):
{
"cmd": ["kotlin", "-J-Dfile.encoding=UTF-8", "$file"],
"selector": "source.kotlin",
"file_regex": "^(.*):([0-9]+):([0-9]+): (.*)$",
"working_dir": "${file_path}"
}
安卓项目里高亮正常≠语义正确:@Composable、by viewModels() 不会变色
插件只做词法高亮(关键字、字符串、括号),不处理语义层特性。所以 @Composable、by viewModels()、rememberSaveable 这些 Android 特有语法,在 Sublime 里就是普通标识符颜色——这正常,不是插件坏了。
真正容易被忽略的是兼容细节:
-
.kts文件在安卓项目中常用于build.gradle.kts,但插件对 Gradle DSL 支持有限,嵌套 lambda 或复杂配置可能断高亮 - 如果项目用了 Kotlin 2.0 新语法(如
expect/actual的新写法),jaredly 插件尚未同步更新,部分结构会 fallback 成灰色 - Windows 用户要注意环境变量路径分隔符是
;,不是:;且kotlin.bat所在目录必须加入PATH,否则 Build System 找不到命令
轻量级阅码够用,但别指望它替代 Android Studio 的语义跳转和重构能力。











