notepad++ 原生不支持 proper case,因 scintilla 底层无单词级 token 化能力;title case 实际为每行首字母大写。可用 textfx characters 插件实现真 proper case,或用两步正则(先\l$0全小写,再(^|\s)([a-z])→\1\u\2)模拟,但均限 ascii 且受编码与语法限制。

Notepad++ 原生不支持「首字母大写」(即 Proper Case)功能,Ctrl+U / Ctrl+Shift+U 无法实现,必须依赖插件或正则模拟。
为什么 Edit → Convert Case to 里没有 Proper Case 选项
Notepad++ 的 Edit → Convert Case to 菜单只提供 Upper Case、Lower Case 和 Title Case 三项,但它的 Title Case 实际行为是「每行首字母大写」,且仅对光标所在行或选中文本生效,不识别单词边界(比如 user_name 或 XMLHttpRequest 不会拆成 User_Name 或 Xml Http Request)。这不是 bug,是 Scintilla 底层设计限制——它没有单词级 token 化能力。
TextFX Characters 插件是最直接的解法
这是唯一能开箱即用、真正按单词首字母大写的方案,但需手动安装:
- 菜单栏点
Plugins → Plugin Manager → Show Plugin Manager,搜索TextFX Characters并安装(v0.29+ 支持 Notepad++ v8.x) - 重启后,选中文本 → 右键 →
TextFX Characters → Convert to Proper Case,或走菜单TextFX → TextFX Characters → Convert to Proper Case - 注意:该插件对非 ASCII 字符(如带重音的
café、中文、emoji)不处理,只动 ASCII 单词;若文档编码不是UTF-8或ANSI,可能跳过部分单词
不用插件?用正则分两步模拟(有限但可控)
原生正则无法一步到位,但可逼近效果。关键点是:先统一小写,再匹配每个单词开头字母并大写。操作如下:
- 第一步:全转小写 ——
Ctrl+H→ 查找填.*,勾选Match case和Regular expression,替换为\L$0→ 点全部替换(⚠️慎用,建议先Ctrl+A再操作,避免误触其他内容) - 第二步:单词首字母大写 ——
Ctrl+H→ 查找填(^|\s)([a-z]),替换为\1\U\2,勾选Regular expression→ 点全部替换 - 说明:
(^|\s)匹配行首或空格,([a-z])捕获紧随其后的小写字母;\U\2把该字母转大写,\1保留前面的空格或换行 - 局限:无法处理连字符(
user-id)、下划线(user_name)、缩写(i18n),且XMLHttpRequest会被当作一个单词,首字母X大写,其余仍小写
容易被忽略的三个硬限制
无论用插件还是正则,以下三点实际操作中常导致失败:
- 文档编码必须是
UTF-8或ANSI;状态栏显示GBK或ISO-8859-1时,带重音字母(如naïve)可能不被匹配或乱码 -
\U和\L是 Notepad++ 特有语法,只在「替换为」框中、且勾选Regular expression时有效;写成U$0或L$0是错的,那是旧版语法,v7.9+ 已弃用 - 所有操作均严格限于 ASCII 字母
A–Z / a–z,数字、中文、下划线、点号、连字符、BOM 字节全部跳过——这不是遗漏,是底层明确不支持











