Sublime Text 原生支持单词高亮,需在用户设置中添加 "highlight_word": true 并重启;该功能区分大小写且全字匹配,比插件更稳定轻量。

Sublime Text 默认就支持高亮当前光标下单词的所有匹配项,无需插件——但很多人没开这个功能,或误以为要装插件才能用。
怎么开启原生单词高亮(highlight_modified_tabs无关,别被名字误导)
Sublime 的单词高亮由 highlight_line 和 highlight_matching_brackets 之外的独立设置控制,叫 match_selection,但它只影响「选中后」的行为;真正决定「光标停在单词上是否高亮全部相同词」的是 highlight_word,不过这个选项并不在默认设置里,需要手动加。
- 打开
Preferences → Settings - 在右侧用户设置(右侧面板)中添加这一行:
"highlight_word": true
- 保存,重启 Sublime(部分版本需重启才生效)
之后把光标放在任意变量名、函数名或字符串上(不选中),所有完全相同的文本都会被浅色背景高亮。注意:区分大小写,且默认是「全字匹配」(不会把 count 高亮在 counter 里)。
为什么装了 HighlightWords 插件反而更麻烦
这个插件确实能自定义高亮多个关键词,但会覆盖原生逻辑,带来几个实际问题:
- 每次新增高亮词都要手动调用命令
HighlightWords: Add Word,不能自动响应光标位置 - 它默认不区分全字,容易误高亮(比如搜
i,结果所有字母i都被标红) - 和
BracketHighlighter或SideBarEnhancements偶尔冲突,导致高亮闪烁或失效 - 插件本身不维护多年,Sublime 4 下部分功能已不可用
除非你要同时高亮 API_KEY、api_url、ApiService 这类跨命名规范的词,否则原生 highlight_word 更稳、更轻、更符合直觉。
想高亮「同一作用域下的变量」而不是所有相同字符串?那得换思路
原生高亮是纯文本匹配,无法识别语法作用域。比如函数内两个同名但不同作用域的 temp,它会一并高亮,这反而是干扰。
- 真要语义级高亮,得靠 LSP(Language Server Protocol)配合语言服务器,例如安装
LSP-pyright(Python)或LSP-typescript,它们会在 hover 或 goto definition 时标记引用,但不改变编辑器背景色 - 部分主题(如
Adaptive)会用不同颜色显示「局部变量」vs「全局变量」,但这依赖配色方案解析 scope name,不是高亮功能本身 - 没有插件能完美做到「只高亮当前函数内的同名变量」——因为 Sublime 不做 AST 解析,它连哪段是函数体都未必知道
别为了“看起来高亮更智能”去折腾插件。原生 highlight_word 开启后,90% 的变量追踪需求已经满足;剩下那 10%,该用 debugger 就用 debugger,该加注释就加注释。高亮只是辅助,不是理解代码的替代品。










