必须先安装terraform cli且版本≥1.5.0,再依次安装lsp、lsp-terraform插件,最后手动启用terraform语言服务器;windows路径含空格需设"shell_cmd": null,项目根目录须含terraform { required_version = ">=1.5.0" }块。

Sublime Text 装 LSP-terraform 前必须装好 terraform CLI
没装 terraform 或版本太低,LSP-terraform 启动就失败,状态栏只显示 “Starting…” 无限转圈,日志里报 terraform: command not found 或 unsupported version。这不是插件问题,是语言服务器根本起不来。
-
terraform -v必须能输出v1.0.0或更高(2026 年主流项目已要求 ≥v1.5.0) - Windows 用户注意:路径含空格(如
C:\Program Files\...)会导致LSP-terraform启动失败;要么重装到无空格路径,要么在LSP.sublime-settings中显式设"shell_cmd": null - macOS / Linux 用户若用
brew install terraform,确认which terraform输出路径被 Sublime 继承(终端启动 Sublime 可避免 PATH 丢失)
安装顺序不能错:LSP → LSP-terraform → 手动启用
直接搜 LSP-terraform 安装会失败——它依赖 LSP 核心客户端,且不自动激活。必须分三步走:
- 先通过
Package Control: Install Package装LSP(不是LSP-terraform) - 再装
LSP-terraform(注意名称全称,别选错成旧版Terraform或HCL插件) - 重启 Sublime 后,打开一个
.tf文件,按Ctrl+Shift+P输入LSP: Enable Language Server,选terraform—— 这步漏掉,补全和 lint 就不会触发
LSP-terraform 能做什么、不能做什么
它提供的是基于 terraform-ls 的静态分析能力,不是执行引擎。点 Run Plan?不存在。所谓“一键构建”,其实是你写完配置后,靠它提前发现 resource "aws_s3_bucket" "foo" 拼错成 aws_s3_buket,或 count 类型不匹配这种硬伤。
- ✅ 实时标红:变量未定义、块名拼错、required 参数缺失
- ✅ 悬停提示:光标停在
azurerm_linux_virtual_machine上,显示 provider schema 和参数说明 - ❌ 不执行
terraform init:LSP不调 CLI,也不会帮你下载 provider - ❌ 不管理 state:
state文件内容变更、remote backend 配置错误,LSP 不感知
项目根目录必须有 terraform { required_version = "..." }
LSP-terraform 初始化时会扫描项目根目录下的 .tf 文件,但只认含 terraform 块的目录为有效 Terraform 项目。如果只有 main.tf 但没声明 required_version,服务器会静默退出,Sublime 控制台里出现 no valid configuration found。
- 最简写法:
terraform { required_version = ">=1.5.0" } - 如果用
localbackend,建议同时加required_providers块,否则悬停提示可能缺失参数细节 - 多模块项目:确保每个子模块目录下也有该块,或把
terraform块放在顶层,子模块通过source引用时才能被正确解析
terraform apply。LSP-terraform 只负责让你少犯错、早发现错——它不替你按下回车。











