smart highlighting 是双击高亮同名项的功能,需先启用智能高亮开关,再在 global styles 中配置背景色;其生效依赖准确的词分隔符定义、无更高优先级样式覆盖,且仅响应双击操作。

“双击高亮同名项”功能叫 Smart Highlighting,不是“智能高亮”开关本身
很多人打开 设置 → 首选项 → 高亮 勾上“启用智能高亮”,却发现双击一个变量名,其他地方没反应——因为这只是启用了基础能力,真正控制颜色和生效范围的,是另一套独立配置。
关键点在于:Smart Highlighting 是一种样式(style),它只在你双击选中一个“词”后,对文档中所有**完全相同、且被识别为同一类词**的字符串加背景色。它不等于语法高亮,也不等于搜索高亮,更不响应部分匹配。
- 必须先在
设置 → 首选项 → 高亮中勾选启用智能高亮 - 然后去
设置 → 语言格式设置 → Global Styles,在样式列表里找到Smart Highlighting并双击编辑 -
Background colour才是你要改的——它决定高亮区域的底色;Font colour是字色(通常保持默认) - 改完一定要点右下角的
保存并关闭,否则无效(重启 Notepad++ 也不行)
双击只高亮一半?检查“词分隔符”定义是否准确
比如你在 XML 文件里双击 user-id,结果只高亮了 user 或只高亮了 id,说明 Notepad++ 没把它当做一个完整单词。根本原因在“词边界”判断逻辑上。
- 路径是:
设置 → 首选项 → 语言 → 定义你当前语言的“词分隔符” - 默认分隔符是空格、括号、等号、引号等,但像连字符
-、下划线_、点号.是否算“词内字符”,得手动确认 - 若你常用
user_name或api.v1这类写法,就得把_和.从“分隔符”里删掉,加进“词字符”列表 - 修改后无需重启,但已打开的文件需重新双击一次才能刷新识别
高亮没显示?优先级冲突比你想的更常见
即使 Smart Highlighting 颜色设得很醒目,你也可能看不见效果——因为别的样式正在“盖住”它。
-
Mark Style 1–5(Ctrl+1~5 标记的颜色)优先级高于Smart Highlighting,如果之前搜过东西并点了“全部标记”,那些标记会压掉双击高亮 -
Current line background colour(当前行背景色)如果和Smart Highlighting背景色太接近(比如都设成浅黄),肉眼根本分不清 - “高亮所有匹配项”(搜索时的高亮)和
Smart Highlighting是两套机制,互不影响,但视觉上容易混淆;关掉搜索标记可快速验证是不是Smart Highlighting真的失效 - 某些自定义语言(如通过
语言 → 定义语言添加的 XML Schema)若未正确定义Word characters,双击行为会退化为普通字符串匹配,失去语义感知
不能按语言设不同高亮色?用标记+快捷键模拟
Notepad++ 的 Smart Highlighting 是全局唯一配置,没法给 Python 设蓝色、给 JSON 设绿色。但你可以绕过这个限制:
- 用
Ctrl+F搜索关键词(比如def、"type"),勾选高亮所有匹配项,再点全部标记 - 进
设置 → 标记 → Mark Style 1,设成你想要的颜色(比如深蓝背景) - 配合快捷键:默认
Ctrl+1应用 Mark Style 1,Ctrl+2应用 Style 2……可分别对应不同语言的关注点 - 清除也很方便:
搜索 → 清除颜色标记,或提前在设置 → 管理快捷键里把编号109–105(清除 Style 1–5)绑定到Alt+1~Alt+5
这个方案本质是“用搜索标记模拟语义高亮”,虽然多点操作,但比改源码或换编辑器现实得多。真正容易被忽略的是:Smart Highlighting 只响应双击,不响应鼠标拖选或键盘选中——如果你习惯用方向键+Shift 选词,它压根不会触发。











