Notepad++大小写转换严格按上下文执行:有选中则转选中部分,无选中仅转光标所在整行;全文转换须通过菜单Edit→Convert Case to并确认;正则替换可用\L\1、\U\1处理引号内内容。

Ctr+U 和 Ctrl+Shift+U 是唯一原生快捷键,但它们从不“全文转换”,除非你手动触发菜单确认——这是最常被误解的起点。
Ctrl+U 按了没反应?先看光标在哪、有没有选中
Notepad++ 的大小写转换不是“全局生效”,它严格按上下文执行:
- 有选中文本 → 只处理选中部分(支持多行、跨行选中)
- 没选中 → 仅作用于光标所在**整行**,不是全文;如果该行是空行、
// 注释、123abc或纯符号行,实际无字母可转,看起来就像“没反应” - 处于列编辑模式(Alt + 鼠标拖选)→
Ctr+U和Ctr+Shift+U静默失败,切回普通选中即可 - 快捷键被宏占用 → 进
Settings → Shortcut Mapper → Scintilla commands,搜SCI_LOWERCASE和SCI_UPPERCASE,确认绑定仍是默认组合键
想全文转大写?别靠快捷键,走菜单确认流程
快捷键本身不弹提示,也不提供全文选项。唯一安全触发全文转换的方式是:
- 确保未选中任何文本
- 点顶部菜单:
Edit → Convert Case to → Upper Case(或Lower Case) - 会弹出确认框:“未选择文本,是否对整篇文档执行?” → 点“是”
这个路径绕过了快捷键的静默行为,也避免误操作。而直接按 Ctr+Shift+U 即使在空文档里,也只处理光标所在行——哪怕那行只有一个换行符。
正则替换实现 class/id 属性值大小写转换
原生命令无法识别 HTML 或 JSON 结构,必须用 Ctrl+H + 正则语法:
- 查找:
class="([^"]*)",替换为:class="\L\1"→ 引号内全小写 - 查找:
id="([^"]*)",替换为:id="\U\1"→ 引号内全大写 -
\L和\U是 Notepad++ 特有替换语法,**只对紧邻的捕获组生效**,\L$1、\U\0或\L \1(中间有空格)都会字面输出,不生效 - 必须勾选
Regular expression,且文档编码应为UTF-8;GBK 下café、naïve类字符可能被跳过
批量处理多个文件:宏能用,但节奏必须人工卡死
Notepad++ 没有“对所有打开文件执行”的按钮,宏是唯一原生路径,但极易播过头:
- 先
File → Open多选所有目标文件(支持 Ctrl+多选),数清共 N 个标签页 - 激活第一个标签页 →
Ctr+Shift+R开始录制 →Ctr+A→Ctr+U→Ctr+Tab→Ctr+Shift+R停止 - 播放前确认:只按
Ctr+Shift+P共 N−1 次(最后一次不用切标签) - 若文件含 BOM 或混合编码,建议先统一执行
Encoding → Convert to UTF-8再跑宏
真正容易被忽略的是:所有操作都只处理 ASCII 字母(a–z / A–Z),ü、α、中文、emoji、数字、符号全都不变——这不是 bug,是 Scintilla 底层限制。动手前先看一眼状态栏右下角的编码和语言模式,比反复按快捷键更省时间。


















