关闭 highlight_matches 设为 false 可禁用全文匹配高亮;若仍有高亮,需检查 WordHighlight 等插件是否覆盖设置,并将其 highlight_when_selection_empty 设为 false 才实现仅选中时高亮。

如何在 Sublime Text 中开启“仅在选中时高亮”
Sublime Text 默认会高亮所有匹配的单词(比如双击一个变量名,所有同名变量都会被标记),这在大文件里容易造成视觉干扰。要让它只高亮当前光标所在位置或选中的文本,关键不是启用某个开关,而是**关闭默认的全局高亮行为**。
关闭 highlight_line 和 highlight_matching_brackets 不相关,真正要改的是 highlight_on_select
这个设置控制“是否在选中文字时高亮所有匹配项”,但它默认是关闭的;真正导致你看到满屏高亮的,其实是 highlight_matches 的副作用。你需要显式禁用它:
-
highlight_matches是触发全文匹配高亮的核心开关,设为false即可停用 -
highlight_line控制当前行背景色,和匹配无关,不用动 -
highlight_matching_brackets只影响括号配对,也不影响单词高亮
修改方式:打开 Preferences → Settings,在右侧用户设置中加入:
{
"highlight_matches": false
}
为什么改了设置后双击仍高亮?检查是否被插件覆盖
某些插件(如 BracketHighlighter、WordHighlight)会自行实现高亮逻辑,完全绕过原生 highlight_matches 设置。如果你已设为 false 但仍有高亮,大概率是插件在起作用:
- 临时禁用插件:菜单
Tools → Command Palette → Package Control: Disable Package,逐个关掉疑似插件再测试 - 查插件配置:比如
WordHighlight有自己的word_highlight.settings,其中"highlight_when_selection_empty"设为false才真正只在有选中时高亮 - 插件优先级高于原生设置,不卸载或重配就无效
进阶:只在有选中时高亮 —— 需要插件配合
原生 Sublime 没有“仅当有选中文本才高亮匹配项”的开关。如果真需要这个行为(例如:选中 user_id 才高亮所有 user_id,光标停在上面不触发),必须借助插件:
- 安装
WordHighlight后,在其设置中启用:"highlight_when_selection_empty": false - 确保
"highlight_when_selection_empty"和"highlight_word_under_cursor_when_selection_empty"都为false - 此时只有鼠标拖选或按住
Ctrl+D增量选择时,才会触发高亮
这个细节常被忽略:很多人以为关掉 highlight_matches 就万事大吉,结果插件悄悄接管了高亮逻辑,还沿用默认的“光标悬停即高亮”策略。










