sublime原生highlight_word功能已足够,不生效主因是highlight_line遮挡、暗色主题颜色过淡或用户设置中"highlight_word": false;插件wordhighlight与原生不兼容,需单独配置且作用域规则不同。

原生功能已足够,别急着装插件——Sublime 从 build 3143 起就自带 highlight_word,光标停在单词上即高亮全部匹配项;所谓“不生效”,90% 是被 highlight_line 盖住、暗色主题颜色太淡,或用户设置里写了 "highlight_word": false。
为什么光标停在单词上没高亮?先查这三处硬伤
不是功能坏了,是干扰项盖住了效果:
-
highlight_line开启后整行背景变深,直接压掉单词高亮的浅色底——关掉它最立竿见影 - 暗色主题(如 Monokai、Dracula)把高亮色设成接近背景的灰,肉眼难分辨;可临时切到
Monokai Bright或Adaptive验证 - 用户设置里存在
"highlight_word": false—— 这个值会直接关闭功能,删掉或改成true即可 - 右下角状态栏亮着
.*图标(正则搜索模式开启)时,highlight_word逻辑会被覆盖,退出正则模式再试
想双击才高亮?必须用 WordHighlight 插件,但注意它和原生不兼容
Sublime 原生没有 highlight_when_selection_empty 这类开关,所有“只在选中时触发”的需求都得靠插件。WordHighlight 是目前最稳定的选择,但它和原生高亮完全独立:
- 安装后需双击选中一个完整单词(比如
user_id),不能点在下划线或括号上 - 配置项只在
WordHighlight.sublime-settings文件里生效,写进用户 Settings 无效 - 默认不进字符串和注释;若要高亮引号内的
"user_id",得加"ignore_scope_list": []并确保"word_highlight_in_comments": true已开 - 高亮颜色由
color_scope_name控制,默认是"wordhighlight",必须在当前主题的.tmTheme文件里定义该 scope,否则 fallback 到极淡灰色
大文件或特殊语法下高亮失效?别怪插件,是 Sublime 的底层限制
这不是配置问题,而是编辑器能力边界:
- Plain Text 模式下高亮常失效——切换到对应语法(如 Python、HTML)再试,因为作用域(scope)决定了单词边界识别逻辑
- 选中
div却不亮其他div,大概率当前文件语法被识别为 Plain text,而非 HTML - 文件 >10MB 或单行超长时,Sublime 会主动降级高亮行为,插件也无法绕过;这不是 Bug,是性能保护机制
-
user_id和user_id_list不一起高亮,是因为下划线在word_separators里,默认拆词;如需整体匹配,得改word_separators,但这会影响双击选中逻辑
真正容易被忽略的是:原生 highlight_word 和 WordHighlight 插件的高亮样式、触发时机、作用域过滤规则全不兼容。混用时,后者可能静默接管前者,导致你改了用户 Settings 却没反应——排查前先禁用 WordHighlight,确认原生是否正常,再决定要不要加插件。











