必须安装terraform by int128插件,手动绑定.tf/.tfvars等后缀至terraform语法,并配置lsp-terraform语言服务器,三步缺一不可;装错插件(如hcl或弃用terraform包)或未绑定后缀将导致文件全灰、无补全和错误提示。

装对插件、手动绑定后缀、配对语言服务器——三步之后 .tf 文件才能真正“活”起来,否则全是灰色文本或报错不提示。
怎么选对 Terraform 语法插件(不是所有叫 Terraform 的都行)
Sublime 默认不认识 .tf,装错插件等于白忙。必须用 Terraform by int128(作者 int128),不是单字 “Terraform” 包,那个已弃用;HCL 插件(mattly 维护)也能用,但资源块名(如 resource、module)高亮支持弱一些。
安装路径:Ctrl+Shift+P → Package Control: Install Package → 搜 Terraform → 点 Terraform by int128。
验证是否装对:打开命令面板,输入 Package Control: List Packages,确认列表里有 Terraform by int128,没有 Terraform Tools 或孤立的 Terraform。
为什么 .tf 文件打开还是灰色?绑定语法这一步不能跳
插件只提供解析能力,不自动接管文件后缀。不绑定,Sublime 就当它是纯文本。
-
.tf文件,点击右下角Plain Text→ 选Terraform→Terraform - 立刻执行
View→Syntax→Open all with current extension as…→ 再选Terraform→Terraform - 同理处理
.tfvars、.auto.tfvars:打开一个dev.tfvars→ 右下角点 →Terraform→Terraform→View→Syntax→ 同上操作
如果某次没生效,重启 Sublime;若仍无效,检查控制台(Ctrl+`)是否有 error loading syntax,说明插件加载失败。
补全和校验功能为啥不工作?光有高亮远远不够
高亮只是视觉层,补全、跳转、错误提示依赖 lsp-terraform 这类语言服务器。只装 Terraform by int128,Ctrl+Click 跳不到变量定义,resource 写错也不会标红。
必须额外安装:
-
LSP插件(基础协议支持) -
lsp-terraform(专用于 Terraform 的 LSP 客户端) -
terraformCLI 已在系统PATH中(terraform version能正常返回)
安装后需在 LSP.sublime-settings 中启用 lsp-terraform,否则服务不会启动。常见表现是:语法高亮有了,但悬停无文档、保存不格式化、var. 后无补全建议。
容易被忽略的细节:.tf 文件可能被其他插件劫持
某些老旧插件(比如早期 Terraform Tools 或自定义 .sublime-syntax)会把 .tf 映射到错误 scope,导致 Terraform by int128 加载失败或部分规则失效。
排查方法:
- 关闭所有非必要插件,只留
Package Control、Terraform by int128、LSP、lsp-terraform - 打开
main.tf,按Ctrl+Shift+P→ 输入Developer: Show Scope Name,看顶部状态栏显示的 scope 是否为source.terraform - 如果不是,说明当前文件被别的语法定义覆盖了,需检查
Packages/下是否有冲突的.sublime-syntax文件
真正卡住人的地方往往不是“没装”,而是“装了但被覆盖”——scope 名不对,整个高亮链就断了。











