sublime text 默认不识别 .tf、.tfvars、.hcl 文件,需手动绑定扩展名到 terraform by int128 语法(右下角点击“plain text”→“open all with current extension as…”→选对应项),否则无高亮、折叠及作用域功能。

Sublime Text 默认不识别 .tf、.tfvars、.hcl 这类文件,装完插件也还是灰色文本——这不是插件失效,是语法映射压根没建立。必须手动绑定后缀到对应语法,否则所有高亮、折叠、作用域功能都形同虚设。
怎么确认你装的是对的 Terraform 插件
打开命令面板(Ctrl+Shift+P),输入 Package Control: List Packages,检查列表里是否明确存在:Terraform by int128(作者 int128)。如果看到的是单字 Terraform、Terraform Tools 或 HCL(作者 mattly),就属于错配:
-
Terraform by int128是当前唯一稳定支持 Terraform 1.x + HCL 2 的语法包,含完整resource/module/output块识别 -
HCL插件默认只绑定.hcl,对.tf和.tfvars完全不响应 -
Terraform Tools已弃用,2024 年起不再更新,解析逻辑在 1.4+ 版本中大量报错
为什么 .tf 文件打开还是 Plain Text
插件只提供语法定义,不自动接管文件扩展名。右下角显示 Plain Text 就是铁证——Sublime 根本没尝试解析它。
- 打开任意一个
main.tf - 点击右下角
Plain Text→ 选Terraform → Terraform - 立刻执行菜单:
View → Syntax → Open all with current extension as… → Terraform → Terraform - 重复操作:对
dev.tfvars、prod.auto.tfvars、backend.hcl各做一次(每个扩展名都要单独绑)
完成后,新打开的同后缀文件会直接高亮,无需重启。若仍无效,检查控制台(Ctrl+`)是否有 error loading syntax,说明插件未加载成功。
resource 块颜色太淡?别改语法,改配色规则
高亮弱不是插件问题,是主题没覆盖 meta.block.resource.hcl 这类 scope。先确认作用域:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 把光标放在
resource上,按Ctrl+Shift+P→ 输入Developer: Show Scope Name - 看到类似
source.hcl meta.block.resource.hcl的输出,复制meta.block.resource.hcl - 打开用户配色文件:
Packages/User/Monokai Custom.sublime-color-scheme(或你当前主题名 +Custom) - 在
"rules"数组末尾加一条:
{
"scope": "meta.block.resource.hcl",
"foreground": "hsla(210, 80%, 60%, 0.95)"
}
注意:foreground 必须是合法颜色值(#rrggbb、hsl()、hsla()),写错整条规则静默失效;保存后需重新打开文件才生效。
LSP 补全和校验不工作?高亮 ≠ 智能功能
Terraform by int128 只负责语法着色和基础折叠。要 aws_instance. 弹出参数、var. 跳转、terraform validate 实时报错,必须配 LSP:
- 先装
LSP插件(不是SublimeLinter) - 再装
LSP-terraform(它会自动下载并管理terraform-ls) - 本地必须已安装
terraformCLI(运行terraform -v有输出) - 项目根目录必须存在
terraform { required_version = ">= 1.0" }块,否则terraform-ls拒绝启动 - Windows 用户注意:
terraform-ls在含空格或中文路径下会崩溃,建议项目放C:/tf/这类干净路径
最容易被忽略的一点:LSP 功能依赖 .terraform/ 目录里的 provider schema,这意味着你至少得跑过一次 terraform init,否则补全永远是空的。










