ctrl+u和ctrl+shift+u是notepad++原生大小写转换快捷键,未选中时仅作用于光标所在整行,非全文;全文转换需用菜单命令edit→convert case to→lower case/upper case并确认提示,跨文件批量处理须靠宏录制配合人工控制节奏。

Ctrl+U 和 Ctrl+Shift+U 就是原生批量转小写/大写的最快路径,但“批量”仅限单文件内——没选中文本时转全文,选中后只动选区。跨文件不支持一键全转,必须靠人工节奏控制。
没选中文本时按Ctrl+U为什么只改了一行?
Notepad++ 的逻辑是:没选中 → 作用于光标所在**整行**,不是全文。很多人误以为“没选中=全文”,结果按完发现只有当前行变了。
- 真正触发全文转换的,只有菜单命令
Edit → Convert Case to → Lower Case(未选中时会弹提示:“是否对整篇文档执行?”) -
Ctrl+U默认不弹窗,行为更“静默”,适合已知范围的操作;但新手容易踩空 - 若光标停在空行、纯数字行或注释行(如
// TODO),该行无 ASCII 字母,看起来就像“没反应”
用正则替换实现局部上下文大小写转换
比如要把所有 class="Btn Primary" 中引号内的内容转小写,Ctrl+U 无法识别 HTML 属性结构,必须用正则 + \L 标记:
- 打开
Ctrl+H,勾选「正则表达式」 - 查找:
class="([^"]*)"(捕获引号内任意非引号字符) - 替换:
class="\L\1"(\L是 Notepad++ 特有语法,仅对\1内容生效) - 注意:
\L$1或\L\0无效;\L后不能有空格;非 UTF-8 编码下带重音符的字母(如café)可能被跳过
录制宏批量处理多个文件,为什么播到一半就卡住?
因为宏不会自动感知“最后一个文件”,它只会机械执行你录的动作:比如 Ctrl+A → Ctrl+U → Ctrl+Tab。播到第 N 个文件后,再按 Ctrl+Tab 会切到空白标签页,Notepad++ 报错并中断。
- 安全做法:先用
File → Open多选所有目标文件,数清共 X 个标签页 - 从第一个开始录:激活标签页 →
Ctrl+A→Ctrl+U→Ctrl+Tab - 停止录制后,只手动按
Ctrl+Shift+P共 X−1 次(最后一个文件不用切) - 别在录制过程中切换窗口焦点,否则宏会录进错误的
Alt+Tab或鼠标动作
为什么转完大小写,中文或带符号的英文变乱码了?
不是转换出错,而是文档编码不匹配。Notepad++ 的大小写操作依赖底层 Scintilla 对字符的解析能力,而 ANSI 编码(尤其 Windows 默认的 GBK 变体)无法正确识别 naïve、résumé 这类含重音符的 Unicode 字符,会把它们当乱码跳过甚至截断。
- 操作前先确认状态栏右下角显示的是
UTF-8或UTF-8-BOM;如果不是,点Encoding → Convert to UTF-8再操作 - 转完后如果下游工具报 BOM 错误,可再点
Encoding → Encode in UTF-8(去掉 BOM) - 对纯 ASCII 文本(a–z/A–Z/0–9/标点),编码影响几乎为零;但只要混入任何 Unicode 字符,编码就是第一道关卡











