notepad++原生支持快捷键ctrl+shift+u或菜单edit→convert case to→upper case转大写,仅作用于选区或光标所在行,未选中时处理全文ascii字母,中文数字符号等不变。

直接按 Ctrl + Shift + U,或走菜单 Edit → Convert Case to → UPPER CASE,就能把选中文本转成大写——这是 Notepad++ 原生命令,不依赖插件、不需正则,开箱即用。
为什么 Ctrl + Shift + U 有时没反应
最常见原因不是快捷键失效,而是你根本没选中内容,又没注意它默认只作用于选区或光标所在行(不是全文)。另外要注意:
- 右键菜单默认不显示「转换大小写」选项,必须从顶部菜单点,或硬记快捷键
- 若状态栏右下角显示的是某种语言模式(如 Python、JSON),不影响该功能;但若文档编码是乱码状态(比如 GBK 文件里混了 UTF-8 字节),可能触发内部判断异常,导致静默失败
- 旧版 Notepad++(v7.5.6 之前)在列编辑模式(
Alt + 鼠标拖选)下,Ctrl + Shift + U会完全不响应——切回普通鼠标框选即可 - 有人把
Ctrl + Shift + U录进宏里了,此时快捷键优先执行宏,而不是转大写
Edit → Convert Case to → UPPER CASE 和快捷键行为一致吗
完全一致。两者调用的是同一个底层命令 SCI_UPPERCASE,区别只在触发路径。但实操中要注意:
- 菜单项名称是
UPPER CASE(全大写),不是 “Uppercase” 或 “To Upper Case”,别在菜单里找错位置 - 如果没选中任何文本,它会把整篇文档当前标签页里的所有 ASCII 字母转成大写——包括注释、字符串、变量名,不区分上下文
- 中文、数字、符号、空格、制表符、换行符全部跳过,不会被改动,也不会报错
想只对引号内、class 属性值这类局部内容转大写,怎么办
Notepad++ 原生命令做不到“按上下文条件转大写”。比如 class="btn primary" 想只把 btn primary 转大写,必须组合操作:
- 先用
Find → Replace,勾选「正则表达式」,查找:class="([^"]*)",替换为:class="\1"(先确保能准确定位) - 然后手动逐个双击或
Ctrl + 鼠标左键选中引号内内容(或用扩展选择 → 选择括号内内容快速定位) - 再按
Ctrl + Shift + U - 不能在替换框里写
\U\1——Notepad++ 的正则替换引擎不支持\U、\L这类 Perl 风格控制符,写了就原样输出字符串
真正容易被忽略的是:大小写转换后,文件编码是否仍一致。比如 UTF-8-BOM 文件转完大写,BOM 还在,但某些老旧构建脚本读取时可能误判开头字节。这不是功能 bug,只是提醒你——改完别忘了顺手看一眼状态栏右下角的编码标识。











