右下角显示Plain Text说明高亮未启动:需手动点击切换至MIPS Assembly语法,若菜单无选项则启用对应插件;.s与.S须分别绑定,开头含#会被判为Shell;寄存器或新指令不着色是因语法包未定义,应升级或自定义正则匹配。

右下角显示 Plain Text 就说明高亮根本没启动
Sublime Text 默认不识别 .s、.asm 或 .mips 文件为 MIPS 汇编,打开后纯黑白或被当成 Shell/C —— 这不是插件没装,是你没手动把文件和语法绑上。右下角显示 Plain Text,哪怕你装了十个汇编插件,lw $t0, 0($sp) 也绝不会变色。
确认并切换当前语法的最快方式:
- 打开一个
.s或.asm文件 → 点击右下角文字(比如Plain Text)→ 搜索MIPS、Assembly (MIPS)或MIPS Assembly - 若菜单里压根没有这些选项:按
Ctrl+Shift+P→ 输入Package Control: Enable Package→ 搜MIPS Assembly或SublimeMIPS→ 勾选启用 - 临时验证:按
Ctrl+Shift+P→ 输入Set Syntax: MIPS Assembly回车,立刻看.text、lw、$a0是否着色
.s 和 .S 必须分别绑定,且开头有 # 就会被判成 Shell
.s 文件常见以 # 开头(如 # hello.s 或 #include "asm/asm.h"),Sublime 会直接 fallback 到 ShellScript 语法,$ra、syscall 全灰,注释也不标蓝。
永久绑定更可靠:
- 右键文件标签页 →
Open all with current extension as…→ 选MIPS Assembly(注意大小写和空格必须完全一致) -
.S(大写)是独立后缀,必须单独右键绑定一次;否则内核或裸机汇编文件照样不亮 - 如果绑定后仍无效,检查
Preferences → Settings – User中是否有"ignored_packages": ["MIPS Assembly"],删掉并执行Ctrl+Shift+P→Reload Syntax Definitions
寄存器($t0、$v0)、新指令(daddu、mtlo)不着色?不是配置错,是语法包没定义
光标停在 daddu 或 mtlo 上,按 Ctrl+Shift+P → 输入 Developer: Show Scope Name,如果输出里不含 support.instruction.mips 或 variable.register.mips,说明当前语法包根本不认识这个词。
常见原因和应对:
- MIPS 插件大多只覆盖 classic MIPS32(
add、lw、$sp),对 MIPS64(daddu)、DSP 扩展(absq_s.qb)或自定义协处理器指令默认不收录 - 别改
Packages/MIPS Assembly/syntaxes/MIPS.sublime-syntax—— 升级会覆盖,且 YAML 缩进错一个就整包失效 - 安全做法:用
PackageResourceViewer提取原语法 → 复制到Packages/User/下重命名(如MyMIPS.sublime-syntax)→ 在contexts的instructions规则里加正则:- match: \b(daddu|mtlo|mfhi)\b
构建系统 selector 必须和语法 scope 严格一致
自定义 mips-gcc.sublime-build 时,selector 字段必须匹配你手动设置的语法 scope。比如你用的是 MIPS Assembly,那 selector 得写成 source.mips;若用的是 EnhancedAssembly → MIPS,则可能是 source.asm.mips。
查当前 scope 的方法:
- 打开一个已正确着色的
.s文件 →Ctrl+Shift+P→Developer: Show Scope Name→ 第一行就是 scope 名(如source.mips) - 构建系统里
selector值必须一字不差,否则Ctrl+B不会出现该构建项,或根本不会触发 - 确保
mips-linux-gnu-gcc或gcc -march=mips32已加入PATH,否则即使高亮正常,构建也会报sh: mips-linux-gnu-gcc: not found
MIPS 高亮最易被忽略的点是:不同插件对 $ 寄存器前缀($t0 vs t0)和伪指令(.globl vs .extern)的支持粒度差异极大,而 Sublime 不会自动推断你写的是 O32 ABI 还是 N64 —— 它只认 scope 和正则,不认语义。


















