notepad++无“选中即高亮”功能,仅支持双击触发smart highlighting或ctrl+f后启用“高亮所有匹配项”;二者开关、颜色配置(前者在global styles,后者依赖mark style)、生效条件均不同,混用易失效。

Notepad++ 默认不会在你选中文本时自动高亮所有相同项——它只在双击单词或启用特定开关后才触发,且“选中即高亮”这个行为根本不存在。真正能实现类似效果的,是 Smart Highlighting(智能高亮)和 高亮所有匹配项 两个独立机制,它们触发条件、生效范围、配置路径都不同,混用就会失效。
Smart Highlighting:双击单词才高亮,不是选中就亮
这是最接近“选中即高亮”的功能,但它只响应双击动作,不响应鼠标拖选或键盘选中:
-
Smart Highlighting必须手动启用:菜单栏 → 设置 → 首选项 → 高亮 → 勾选「启用智能高亮」 - 启用后仍不生效?大概率是没配颜色:设置 → 语言格式设置 → Global Styles → 找到
Smart Highlighting(注意拼写是HighLighting),双击设置Background colour,比如#FFD700,改完必须点右下角「保存并关闭」 - 双击后只高亮一半?说明词边界识别错了:设置 → 首选项 → 语言 → 找到当前文档语言(如 JSON、XML)→ 点「定义词分隔符」→ 把
_、.、-从Word separators删掉,加进Word characters - 新建空白文件或扩展名未识别(如
.env)时,状态栏显示Normal text,Smart Highlighting不工作——先手动切语言,或保存为.py再试
高亮所有匹配项:Ctrl+F 搜索后才生效,和选中无关
这个功能名字容易误导,它和鼠标选中完全无关,只绑定搜索框:
- 开关路径是:设置 → 首选项 → 编辑器 → 高亮 → 勾选「高亮所有匹配项」
- 勾选后不会立刻生效,已打开文档需重新执行一次搜索:按
Ctrl+F,输任意字符再删掉,回车确认 - 它受搜索选项影响:
全字匹配和区分大小写开关在搜索框里,不是全局设置;搜user_name时若勾了「全字匹配」,username就不会被标出 - 替换操作(
Ctrl+H)会清空高亮——这不是 Bug,是设计行为;想边替换边看高亮,先按Alt+F3手动激活当前词的高亮
为什么拖选文字不触发任何高亮?
Notepad++ 没有「选中即高亮」这个功能,也没有对应开关。它的高亮逻辑严格区分触发源:
- 双击 → 触发
Smart Highlighting(依赖语言模式 + 词分隔符) -
Ctrl+F搜索 → 触发「高亮所有匹配项」(依赖搜索选项 + 是否勾选开关) - 鼠标拖选 / 键盘 Shift+方向键 → 仅创建选区,不触发任何背景高亮
- 第三方插件(如
Highlighter)可模拟该行为,但稳定性差、兼容性弱,不推荐在生产环境启用
最容易被忽略的点是:两个高亮机制的颜色配置入口完全不同,Smart Highlighting 的颜色在 Global Styles 里,而搜索高亮的颜色由「Mark Style」控制,改错地方等于白调。另外,所有配置修改后必须点「保存并关闭」,重启软件也无效。











