Sublime Text不支持VB.NET语法高亮,需手动改造VBScript.sublime-syntax注入Imports、Public Class等关键词并配置vbc.exe构建系统;.vb文件默认为Plain Text因无内置语法关联且社区无维护良好的VB.NET语法包。

Sublime Text 本身不支持 VB.NET 语法高亮,.vb 文件默认识别为 Plain Text;它也没有内置编译能力,必须手动绑定语法、注入关键词,并配置外部构建工具(如 vbc.exe)才能实现基础的高亮 + 编译流程。
为什么 .vb 文件打开就是纯白文本?
Sublime 默认语法列表里没有 VB.NET 条目,.vb 扩展名未被任何语法包关联——哪怕你装了“VBScript”或“VisualBasic”插件,它们也只覆盖 VB6 或脚本子集,不识别 Imports System、Public Class、MyBase.New() 等 VB.NET 特有结构。
- 右下角显示
Plain Text是最明确的信号:语法引擎根本没加载 - Package Control 中搜 “VB.NET” 或 “Visual Basic .NET” 几乎无有效结果;社区长期缺乏维护良好的 VB.NET
.sublime-syntax - 别指望
VBScript.sublime-syntax直接兼容:它缺少Handles、Of、Iterator、Async等 VB.NET 关键字,也无法解析 XML 文档注释
手动启用 VB.NET 高亮(有限但可用)
唯一可行路径是复用并改造现有的 VBScript.sublime-syntax,注入 VB.NET 核心关键词和作用域。这不是“安装插件”,而是编辑语法定义文件。
- 按
Ctrl+Shift+P输入Preferences: Browse Packages…,进入User/目录 - 若不存在
VBScript.sublime-syntax,先从Packages/VBScript/复制原文件到User/(用PackageResourceViewer插件可提取) - 用 Sublime 打开
User/VBScript.sublime-syntax,在contexts:→main:规则末尾追加以下块:
- match: (Imports|Namespace|Public|Private|Friend|Protected|MustInherit|NotInheritable|Class|Module|Structure|Enum|Interface|Inherits|Implements|Handles|Of|Iterator|Async|Await|Yield|MyBase|MyClass|Me) scope: storage.modifier.vbnet - match: (Console|Debug|Environment|Math|String|Integer|Boolean|DateTime|Object|IEnumerable|IQueryable) scope: support.class.vbnet
- 保存后重启 Sublime,打开
.vb文件,右下角点击Plain Text→Open all with current extension as…→VBScript - 此时
Imports System、Public Class会变色,但泛型(List(Of String))、LINQ(From x In y)仍无法高亮——这是当前方案的固有局限
配置 VB.NET 编译系统(调用 vbc.exe)
Sublime 不编译代码,只调用外部命令。你需要确保系统已安装 .NET Framework SDK 或 .NET SDK,并能从命令行运行 vbc.exe。
- 验证环境:终端执行
vbc /?,若提示“不是内部或外部命令”,说明未配置 PATH 或未安装 SDK - Windows 上典型路径:
C:WindowsMicrosoft.NETFramework4.0.30319bc.exe(Framework)或dotnet build(.NET 5+) - 菜单
Tools → Build System → New Build System…,填入以下内容(适配你的 SDK 路径):
{
"shell_cmd": "vbc /target:exe /out:"${file_path}/${file_base_name}.exe" "${file}"",
"file_regex": "^(.*?):\s+(\d+):\s+(\d+):\s+(.*)$",
"selector": "source.vb",
"encoding": "utf-8"
}
- 保存为
VB.NET.sublime-build,再通过Tools → Build System选中它 -
Ctrl+B即可编译,错误行会被定位(依赖file_regex正确匹配vbc输出格式) - 注意:
vbc.exe不支持现代 VB.NET(如Async),.NET Core/5+ 项目必须改用dotnet build,且需额外处理项目文件(.vbproj)
容易被忽略的关键点
真正卡住人的地方往往不是步骤遗漏,而是隐性依赖没满足:比如 vbc.exe 要求源文件编码为 UTF-8 with BOM(否则中文字符串报错),而 Sublime 默认保存为 UTF-8 no BOM;又比如 VBScript.sublime-syntax 改动后若未重启 Sublime,新规则完全不生效;还有更隐蔽的——某些主题根本不定义 storage.modifier.vbnet 这类自定义 scope,导致你加的关键词依然无色,得同步修改配色方案。


















