Notepad++双击仅选中“词”而非段落,由当前语言的word characters定义控制,默认为0-9a-zA-Z\_;修改需在设置→首选项→语言中追加符号如.-,并重启或切换语言生效。

Notepad++ 双击不能选中“一整段”,它只认“词”(word),不是段落、句子或结构块。想靠双击选中段落,本质是误用了功能边界。
双击行为由什么控制?
双击选中范围取决于当前语言的 word characters 定义,不是空格、换行或标点逻辑,而是正则意义上的“可组成一个词的字符集合”。
- 默认值通常是
0-9a-zA-Z_,所以my_var123算一个词,但config.json会被拆成config、json两段(因为.不在列表里) - 这个设置按语言独立存在:Python、JSON、Normal text 各自有一套,改了“Python”不影响“INI”
- 修改后必须重启 Notepad++ 或手动切换一次语言(比如从
Normal text切到XML再切回)才生效
为什么双击选不中带符号的单词?
常见现象:双击 user-name 只选中 user,双击 api.v1/users 只选中 api——不是 Bug,是 - 和 . 默认不在 word characters 里。
- 解决方法:设置 → 首选项 → 语言 → 找到当前文件对应的语言(如
Normal text或JSON)→ 在右侧word characters框里追加.-,变成类似0-9a-zA-Z_.- - 别删掉
0-9a-zA-Z,否则数字和字母也会被当分隔符,双击可能只选中单个字符 - 如果文件后缀没关联语言(比如打开
app.conf,状态栏显示Normal text而非INI),双击永远按Normal text规则走——需手动点击状态栏语言名切换
想选中“一段文字”该怎么办?
Notepad++ 原生不支持“双击选段落”,但有更可靠的操作路径:
- 光标放在目标段首,按
Ctrl+Shift+↓向下扩展选中整段(以空行为界);再按一次可继续向下吞并段落 - 用
Ctrl+F查找换行符\r\n\r\n(Windows)或\n\n(Unix),勾选“正则表达式”,定位段落边界后手动调整 - 若段落有统一前缀(如
##),可用查找^## .*$+ “全部选中”快速框定所有标题行,再用Alt+Shift+↓向下补全内容 - 不要依赖鼠标双击去碰运气——它设计目标从来就不是语义段落,强行调参适配反而让其他场景(如代码变量名选择)变糟
真正容易被忽略的是:双击逻辑和语言绑定深度耦合,而很多人根本没注意右下角状态栏显示的是什么语言模式。哪怕你把 word characters 改得再全,只要文件被识别为 Normal text,就不会触发 JSON 或 Markdown 的规则。先看状态栏,再动手改设置。


















