sublime text 原生 highlight_word 功能支持光标悬停即高亮同词(大小写敏感、不区分作用域),需手动启用并配置 color scheme 中 word_highlight scope 调整颜色,语义级高亮应使用 lsp 而非插件。

光标停在哪,就高亮哪个词——原生功能已够用
Sublime Text 从很早版本起就内置了 highlight_word 功能,不需要装插件,也不依赖语法解析。只要光标落在一个纯字母数字组成的单词内部(比如 user_id 的 u 或 d 上),所有完全相同、大小写一致的文本都会被浅色背景高亮。
- 必须确保光标没落在空格、标点或引号里——停在
"user_id"的引号上,就不会触发 - 默认不区分作用域:函数内和全局同名变量会一起高亮,这是设计如此,不是 bug
- 不支持驼峰/下划线智能归一化(如
userName和user_name不会互相高亮) - 若没生效,先检查用户设置中是否加了
"highlight_word": true,部分旧版本需重启才加载
选中才高亮?那是你关错了开关
很多人以为“必须双击选中才能高亮”,其实是把 highlight_word 和另一个行为混淆了:match_selection 控制的是“选中后匹配”,而真正决定“光标悬停即高亮”的是 highlight_word。后者在默认设置里根本不存在,得手动加。
- 打开
Preferences → Settings,在右侧用户设置中添加:"highlight_word": true - 别误加成
"highlight_matching_words": true—— 这个键名在较新版本(v4147+)已弃用,不起作用 - 也别开
"highlight_word_under_cursor": true—— 这是过时文档里的错误写法,Sublime 不识别该配置项 - 保存后重启编辑器(v4140 及之前版本必须重启;v4147+ 热重载支持仍不稳定)
高亮颜色太淡?别改主题,先调对地方
高亮背景色由当前配色方案中的 line_highlight 规则控制,但它和行高亮共用同一组样式。想单独增强词高亮对比度,得改 word_highlight 这个 scope。
- 进入
Preferences → Color Scheme,记下当前方案名(如Monokai.sublime-color-scheme) - 用 Sublime 打开该文件,在
"rules"数组末尾加一项:{"name": "Word Highlight", "scope": "word_highlight", "background": "#3a3a4a"} - 颜色值推荐用比背景色稍深或稍浅的灰阶(如
#2e2e36),避免用纯黄/纯红——易干扰语法高亮 - 改完保存,无需重启,立即生效
要语义级高亮?别折腾插件,换工具链
WordHighlight 插件能按驼峰/下划线模糊匹配,但它是纯文本扫描,无法判断 const api_key = 1 和 process.env.API_KEY 是否真为同一变量。这种需求本质是静态分析,Sublime 做不到。
- 如果你需要跨文件、作用域感知、类型推导的引用高亮,得靠 LSP:装
LSP-pyright(Python)、LSP-typescript(TS/JS),它们通过 hover 或 goto definition 显示引用,但不会改背景色 - 插件如
HighlightWords每次新增词都要手动执行命令,不能自动响应光标位置,反而打断节奏 - 多个高亮插件共存时容易样式冲突(比如都抢
word_highlightscope),导致部分词不显示或颜色错乱
真正卡住的点从来不是“怎么高亮”,而是“高亮了,但不知道它是不是同一个逻辑实体”——这时候 debugger 单步比任何颜色都管用。










