右下角显示plain text即高亮未启动;必须手动绑定.vhd后缀至source.vhdl语法,并在settings–user中确认存在{"extensions": {"vhd": "source.vhdl", "vhdl": "source.vhdl"}}。

右下角显示 Plain Text 就等于高亮完全没启动
装完 VHDL 插件后,打开 top.vhd 文件,右下角仍显示 Plain Text ——这不是“差点意思”,而是语法根本没加载。Sublime 不会自动把 .vhd 后缀映射到 source.vhdl 作用域,哪怕插件已安装、语法文件存在,只要没绑定,所有关键字(entity、architecture、port)全是灰色,括号不匹配、注释不缩进,等于白装。
必须手动点击右下角 Plain Text → 选择 Open all with current extension as… → VHDL。这步操作会写入 Packages/User/VHDL.sublime-settings,但更可靠的是直接改用户设置:
- 打开
Preferences → Settings – User - 确认存在这一行:
{"extensions": {"vhd": "source.vhdl", "vhdl": "source.vhdl"}} - 若缺失或拼错(比如写成
vhd1或漏掉vhd),高亮会静默失效
构建系统调用 ghdl 失败,90% 是路径或环境变量问题
Sublime 本身不编译 VHDL,它只是调用外部工具。配置 Tools → Build System → New Build System… 时,常见错误不是命令写错,而是 ghdl 找不到,或路径含空格/中文导致 shell 解析失败。
推荐写法(Windows 示例):
{
"cmd": ["ghdl", "-a", "$file"],
"file_regex": "^(.*):([0-9]+):([0-9]+):.*$",
"selector": "source.vhdl",
"shell": true
}
关键点:
-
"shell": true必须加,否则 Windows 下ghdl命令无法被识别(尤其当未加.exe后缀时) - 若
ghdl不在系统 PATH 中,改用绝对路径:"cmd": ["C:/tools/ghdl/bin/ghdl.exe", "-a", "$file"] - 路径含空格(如
C:/Program Files/ghdl)必须用shell: true+ 双引号包裹,否则 Sublime 会截断 - 保存为
VHDL.sublime-build,再通过Tools → Build System → VHDL手动启用
补全和括号匹配不工作,其实是语法作用域没触发
即使右下角显示 VHDL,输入 signal 没变色、begin 后按回车不自动缩进、( 不配对 —— 这说明 source.vhdl 作用域未真正激活。原因常是主题不支持该作用域,或插件被 ignored_packages 屏蔽。
验证方式:用 Ctrl+Shift+P 输入 Developer: Show Scope Name,把光标放在任意关键字上,看弹出框是否显示 source.vhdl。如果不是,说明语法绑定失败或被覆盖。
- 检查
Preferences → Settings – User是否有"ignored_packages": ["VHDL"]这类误禁项 - 换一个明确支持
source.vhdl的主题,比如 Material Theme 或 Monokai Pro;默认主题常忽略硬件语言作用域 - 别装冷门分支如
VHDL Syntax或VHDL-Mode,它们不兼容 ST4,会报Unable to load syntax file
为什么改完设置后高亮突然失效?
不是插件崩了,而是 Settings – User 里那行 {"extensions": {"vhd": "source.vhdl", "vhdl": "source.vhdl"}} 被覆盖或格式破坏。Sublime 对 JSON 格式极其敏感:多一个逗号、少一个引号、用了中文标点,整段配置就静默失效,且不报错。
最稳妥的做法是:
- 每次修改前备份
Packages/User/Preferences.sublime-settings - 用在线 JSON 校验器(如 jsonlint.com)粘贴校验,确保无语法错误
- 避免用系统记事本编辑,它可能插入 BOM 或换行符异常;推荐用 Sublime 自身打开并保存
- 重装插件或升级 Sublime 后,第一件事就是检查这行是否存在、是否完整
复杂点在于:它看起来像“功能随机坏掉”,实际只是 JSON 里一个引号的位置错了。











