原生highlight_word与WordHighlight插件本质不同:前者自build 3143起内置,光标悬停即高亮同词,不支持双击触发或仅选中时高亮;后者为插件,需双击选中才高亮,支持Alt+Enter多点编辑、跨文件、大小写忽略及智能驼峰匹配,配置项、触发逻辑和颜色控制均独立且互不兼容。

原生 highlight_word 和 WordHighlight 插件根本不是一回事
Sublime Text 自 build 3143 起就内置 highlight_word,光标停在单词上就高亮全部匹配项——但它不响应双击,也不支持「只在选中时才高亮」。而 WordHighlight 是插件,它的核心行为是:双击选中一个词 → 当前文件中所有同名词立刻高亮;按 Alt+Enter 还能同时编辑所有高亮位置。
常见混淆点:
- 误以为开了
"highlight_word": true就等于装了 WordHighlight —— 实际上它俩配置项、触发逻辑、颜色控制全不兼容 - 在用户设置里写了
"highlight_when_selection_empty": false却没生效 —— 这个参数只在WordHighlight.sublime-settings里有效,放错文件就白配 - 装完插件发现没反应 —— 多半是因为你双击时没真正选中完整单词(比如光标落在
user_id的下划线或末尾分号上)
双击高亮失效?先检查这三处硬性条件
WordHighlight 默认只对「完整单词」触发,不是正则模糊匹配。它依赖 Sublime 的 word_separators 判断边界,所以以下情况会直接跳过:
- 双击的文本含非字母数字字符,例如
get_user()中的get_user被括号包裹,插件默认不识别为单词 - 当前语法高亮器把该词归类为字符串或注释(如 Python 中引号内的
"user_id"),插件默认不进字符串高亮 - 你在设置里加了
"non_word_chars": "$_.",但忘了同步更新word_separators配置(需在 Preferences → Settings 里手动补全)
验证方法:打开一个 .py 文件,双击 def,看其他 def 是否高亮;若不行,说明插件根本没加载成功,不是配置问题。
高亮颜色太淡?别改 theme,先调插件 scope
WordHighlight 的高亮样式由 color_scope_name 控制,默认是 "wordhighlight"。这个 scope 必须在当前主题的 .tmTheme 文件里有定义,否则 fallback 到极淡的灰色背景。
最简修复路径:
- 打开 Preferences → Package Settings → WordHighlight → Settings – User
- 加入:
{ "color_scope_name": "markup.highlighted" } - 保存后重启 Sublime(部分版本不重启不加载新 scope)
原因:markup.highlighted 是多数主流主题(如 One Dark、Material Theme)都预设了强对比背景色的 scope,比自定义 wordhighlight 更可靠。强行改 .tmTheme 文件反而容易破坏主题一致性。
多文件高亮、大小写、驼峰匹配怎么开
WordHighlight 默认只作用于当前文件,且严格区分大小写、不拆分驼峰。要扩展能力,必须在插件专属配置里显式开启:
- 跨文件高亮:设
"highlight_in_all_files": true,但注意性能损耗,大项目中滚动可能卡顿 - 忽略大小写:加
"case_sensitive": false,此时User和user会被一并标出 - 驼峰/下划线智能匹配:启用
"enable_smart_matching": true,它能把userId和user_id视为等价(需配合"smart_matching_mode": "both")
这些选项全在 WordHighlight.sublime-settings 里,不在主 Settings 面板。放错位置等于没写。
复杂点在于:smart_matching 会显著拖慢大文件响应,尤其当同时开启 highlight_in_all_files 时;如果只是读代码,建议关掉它,用原生 highlight_word 做基础定位,再用 WordHighlight 处理需要批量编辑的场景。


















