发布于2026-07-10 阅读(0)
扫一扫,手机访问
在 Sublime 里写 Zig 高性能代码,确实可行,但前提是得把 zig 编译器、zls 语言服务,还有正确的构建系统,这三个环节一个一个亲手配齐。光是装个语法插件,或者只配个 zig run,那你连 @compileLog 的输出都看不到,更别说调试 comptime 或者分析内存布局了——这些高级玩法,一样都跑不起来。

Sublime Text 4 其实已经内置了 Zig 的语法文件,藏在 Packages/Zig/Zig.sublime-syntax 里,根本用不着第三方插件。出问题通常就两个原因:
Ctrl+Shift+P,搜 Set Syntax: Zig 就能临时搞定。zig-mode 插件(最后一次更新是 2020 年),它会覆盖掉内置语法,导致 nosuspend、async 这些新关键字直接不着色。二话不说,直接卸掉。PATH)是继承不到的,后续 zls 启动必挂。正确做法是用终端跑 open -a "Sublime Text"。这个问题更直接——构建系统没绑定到 source.zig 作用域,或者 cmd 路径根本不对。关键点有几个:
"selector": "source.zig" 这条必须写对,大小写也不能错。Zig 官方语法包定义的就是这个 scope,别写成 source.ziglang 或其他什么变体。"cmd": ["zig", "run", "$file"],那是跑不起来的,必须写成 ["zig.exe", "run", "$file"],否则 Sublime 找不到可执行文件。["zig", "run", "$file", "--verbose-cc", "--verbose-link"],输出面板里就能看到 @compileLog 的结果和类型推导链。zig build——那玩意强制要求项目根目录下有个 build.zig,直接用 zig run 省心得多。zls 是 Zig 语义补全的核心,但你要知道,它并不是个即装即用的服务,而是需要你手动启动的一个独立进程。出问题基本都出在路径和启动时机上:
LSP.sublime-settings 里,"command" 字段必须写完整的绝对路径,比如 "/opt/zig/zls",不能只写 "zls"——Sublime 不会去读系统的 PATH。Ctrl+`),看看有没有 connection refused 或 exec format error。如果是后者,说明 zls 二进制和当前 Zig 版本不兼容——比如 Zig 0.13.x 就必须用 zls 0.13.x 的分支编译。zig build -Drelease-fast 从源码编译;如果用 zigpkg install zls,记得先确认 ~/.zigpkg/bin/zls --version 输出的版本号前缀和 zig version 对得上。zls 对 comptime 的错误定位和跨文件补全确实有支持,不过有两个硬性限制很容易被忽略:
@compileLog 只有在 zig run 或 zig test 时才会触发,zig build 默认不执行 comptime 块。所以构建系统必须用 zig run 模式,才能看到输出。allocator.alloc、悬垂指针这些),目前 zls 还提供不了。得靠 zig test -Denable-llvm-assertions 或者在运行时加 -fsanitize=address 来捕获,Sublime 这边没法内联提示。comptime const cfg = .{ .port = 8080 }; 这种补全失败,先检查一下这个文件有没有被 @import 到主入口,否则 zls 不会加载它的 AST。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8