Notepad++大小写转换核心是Ctrl+U(小写)和Ctrl+Shift+U(大写),但仅作用于选中文本或光标所在整行;全文转换须用菜单命令并确认提示,跨文件需宏录制,正则替换可实现上下文感知转换。

Notepad++ 里大小写转换不靠插件、不靠设置开关,核心就两条快捷键:Ctrl+U(转小写)和Ctrl+Shift+U(转大写),但它们的行为高度依赖“有没有选中文本”和“当前文档编码”,用错一步就白按。
Ctrl+U 和 Ctrl+Shift+U 为什么有时没反应
不是快捷键失效,而是触发条件没满足:
- 没选中文本时,
Ctrl+U只作用于光标所在**整行**,不是全文;如果光标停在空行、注释行或纯数字行,看起来就像“没反应” -
Ctrl+Shift+U同理,但菜单路径Edit → Convert Case to → Upper Case在未选中时会弹确认框问“是否全文执行”,这是唯一能安全触发全文大写的入口 - 快捷键可能被覆盖:进
Settings → Shortcut Mapper → Scintilla commands,搜SCI_LOWERCASE和SCI_UPPERCASE,确认绑定仍是默认组合键 - 文档为只读状态(如日志被其他进程占用)时,转换操作会被静默忽略,不报错也不生效
正则替换实现上下文感知的大小写转换
原生快捷键无法识别 HTML 属性、引号内容或函数名边界,必须用 Ctrl+H 配合正则语法:
- 查找
class="([^"]*)",替换为class="\L\1"→ 把所有class属性值转小写 - 查找
id="([^"]*)",替换为id="\U\1"→ 把所有id属性值转大写 -
\L和\U是 Notepad++ 特有语法,只对紧邻的捕获组(如\1)生效,\L$1或\U\0会字面输出,不生效 - 必须勾选
Regular expression,且文档编码应为UTF-8;GBK 编码下带重音符的字母(如café)可能被跳过或乱码
批量处理多个文件的可行路径
Notepad++ 没有跨文件批量大小写功能,但可用宏模拟人工流程,前提是节奏可控:
- 先
File → Open多选目标文件(支持 Ctrl+多选),确保第一个标签页激活 - 按
Ctrl+Shift+R开始录制 → 执行Ctrl+A→Ctrl+U→Ctrl+Tab→ 再按Ctrl+Shift+R停止 - 播放宏前数清文件总数 N,只按
Ctrl+Shift+P共N−1次(最后一次不用切标签) - 宏不判断文件边界,播到空白标签页会报错中断;录制时切勿切换窗口焦点,否则混入错误动作
真正容易被忽略的是编码和上下文:哪怕正则写对、快捷键按对,如果状态栏右下角显示的是 ANSI 或 GBK,含重音符或非 ASCII 字母的文本大概率被跳过——这不是 bug,是 Scintilla 底层解析限制。动手前先点 Encoding → Convert to UTF-8,转完再根据下游工具要求决定是否去掉 BOM。


















