双击选中范围由当前语言的word characters定义控制;需在设置→首选项→语言中为具体语言修改词分隔符,如添加.-等字符,改后需重启或切换语言才生效。

双击选中范围由什么控制?
Notepad++ 默认双击选中的是“单词”,但这个“单词”不是按空格或语法划分的,而是由当前语言的word characters定义决定的——本质上是正则意义上的“字词边界”。比如在 Python 中,_ 和数字会被包含在内(所以 my_var123 算一个词);但在 JSON 或纯文本模式下,若未配置,下划线可能被当作分隔符,导致双击只选中 my 或 var123。
怎么改双击选中的字符集?
路径是:设置 → 首选项 → 语言 → 定义你当前语言的“词分隔符”。注意:这里没有全局开关,必须针对具体语言修改(如“Normal text”、“Python”、“JSON”等)。
- 点击左侧语言名,右侧会显示当前
word characters列表,默认是0-9a-zA-Z_ - 想让双击也包含短横线(
-)或点号(.),就手动加进去,比如改成0-9a-zA-Z_.- - 改完后需重启 Notepad++ 或切换一次语言(如从“Normal text”切到“Python”再切回)才生效
- 别乱删
0-9a-zA-Z——否则会导致数字和字母也被拆开,双击可能只选中单个字符
为什么改了没反应?常见失效原因
最常踩的坑不是配置错,而是根本没匹配到当前文件的语言模式:
- 文件后缀未关联语言(比如打开
config文件,它默认是“Normal text”,而非“INI”)→ 手动在底部状态栏点击语言名切换 - 用了用户自定义语言(UDL),但 UDL 没定义
word characters→ 双击行为退化为 ASCII 字母+数字,忽略所有符号 - 开启了“区分大小写”或“全字匹配”等查找选项,误以为影响双击逻辑(其实不相关)
- 系统 DPI 缩放异常时,双击判定区域偏移,看似“没选中”,实为鼠标事件未触发(可临时调成 100% DPI 验证)
想实现“双击选中引号内全部内容”怎么办?
原生不支持。Notepad++ 的双击机制只认“词”,不认结构(如引号、括号、标签)。但有折中方案:
- 把引号设为分隔符(如在
word characters中**去掉**"和'),再配合Ctrl+Shift+方向键扩展选中(光标在引号内时,先Ctrl+Right跳到下一个空白,再Shift+Left往回拉) - 用快捷键
Ctrl+Click点击引号,自动高亮配对引号间内容(需开启设置 → 首选项 → 编辑器 → “括号匹配高亮”) - 真正要一键选中引号内容,得靠插件(如
TextFX或Python Script插件写小脚本),但稳定性差,新版 Notepad++ 已逐步弃用插件接口
说到底,双击选中本质是轻量级交互,不是结构感知编辑器。真要处理嵌套、引号、标签这类语义内容,不如直接用正则查找 "([^"]*)" 后标记再操作——更可控,也少绕弯。










