sublime text 配置 puppet 环境需两步:先通过 package control 安装 puppet 插件(作者 jfryman 或 puppetlabs),再打开 .pp 文件,点击右下角“plain text”→选择 puppet→点“set as default for .pp files”;插件仅提供语法高亮,不带语法检查,标红需额外配置 sublimelinter-puppet-lint。

Sublime Text 本身不支持 Puppet 语法,必须手动装插件并显式绑定 .pp 文件类型,否则打开 site.pp 就是纯文本——连关键字都不高亮。
怎么让 .pp 文件一打开就有语法高亮
核心就两步:装对插件 + 设为默认语法。别信“装完自动生效”,实际几乎总要手动点一次右下角。
- 先通过
Ctrl+Shift+P→ 输入Install Package→ 搜索并安装Puppet(作者通常是jfryman或puppetlabs) - 打开任意一个
.pp文件,看右下角显示的是Plain Text还是Puppet - 如果是前者,点击它 → 选
Puppet→ 再点Set as Default for .pp files - 验证:新建文件,输入
package {'nginx': ensure => installed},package、ensure应立刻变色
Package Control 装不上?控制台报错或没反应
常见原因是 Python 版本不匹配或网络代理干扰,Sublime Text 3/4 默认用 Python 3,但旧脚本可能含 Python 2 语法。
- 优先用官网最新安装命令(不是博客里抄的旧版),例如 Sublime Text 4 推荐用:
import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761af79e57fdb1db73414082f787adb5fb496ab71ed11'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler())); by = urllib.request.urlopen('https://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s)' % (dh, h)) if dh != h else open(os.path.join(ipp, pf), 'wb').write(by) - 如果公司内网有代理,控制台需先执行
import urllib.request; urllib.request.getproxies()看是否识别到;否则手动加ProxyHandler({'http': 'http://proxy:port', 'https': 'http://proxy:port'}) - 装完不重启 Sublime,
Preferences → Package Control不会出现,必须重启
为什么写错了语法也不标红?比如 files {(多一个 s)
Sublime 的 Puppet 插件只做静态高亮和基础补全,**不做语法检查**。所谓“标红”是 linter 干的活,而它默认没配、也没开。
- 这不是插件缺陷,是设计如此:高亮 ≠ lint。VSCode 同样要配
puppet-lint才能标红 - 想加实时检查,得额外装
SublimeLinter+SublimeLinter-puppet-lint,且确保系统已装puppet-lint(gem install puppet-lint) - 路径必须填对:
/usr/local/bin/puppet-lint(macOS/Linux)或C:\Ruby31-x64\bin\puppet-lint.bat(Windows),不能只写puppet-lint - 即使路径对了,若 Sublime 启动时没加载 shell 环境(比如从桌面图标直接启动),
PATH里没有 Ruby 目录,照样找不到命令
怎么让配置跨设备同步(比如 Win + macOS)
Sublime 默认把插件装在用户目录(%APPDATA% 或 ~/Library/Application Support/Sublime Text),换机器就得重装。真要便携,必须改 Data 目录位置。
- 关闭 Sublime,删掉原
Packages和Installed Packages文件夹 - 在 Sublime 安装目录下新建
Data(注意大小写!不是data或DATA) - 再启动,所有插件会自动装进这个新
Data目录 - 把这个
Data文件夹打包,U盘拷走,另一台机器解压到对应安装路径即可 - 注意:Windows 下若用 Chocolatey 安装 Sublime,安装路径可能在
C:\Program Files\Sublime Text;macOS 用 Homebrew Cask 则常在/opt/homebrew-cask/Caskroom/sublime-text
最易被忽略的一点:Sublime 不会自动继承你的 shell PATH,哪怕你在终端能跑 puppet-lint --version,在编辑器里也可能报 “command not found”。验证方式很简单——打开 Sublime 控制台(Ctrl+`),输 import os; os.environ.get('PATH'),对比终端输出,差在哪就补哪。











