sublime text无真正一键批量转换大小写,需先ctrl+k松手再按u/l;文件只读、中文输入法、插件冲突均会导致失败;多光标选中后可统一转换;整行/全文件操作须用正则替换,注意\u$0\e配对防误转。

Sublime 里没有真正意义上的“一键”批量转换——所有原生操作都依赖选区或光标位置,且大小写命令必须分两步触发(Ctrl+K 松手再按 U/L),否则静默失败或触发其他命令。
Ctrl+K 松手再按 U 或 L 才生效
这不是三键组合,而是 Sublime 的命令前缀机制:Ctrl+K(macOS 用 Cmd+K)本身不执行任何操作,只表示“接下来输入子命令”。连按 Ctrl+K+U 不松手,系统可能识别为删行、删到行尾等冲突命令,或被输入法直接吞掉。
- 正确流程:
Ctrl+K→ 松开 → 单独按Ctrl+U(转大写)或Ctrl+L(转小写) - 文件右下角显示
RO(只读)时,操作会静默失败,需先取消只读或另存为 - 中文输入法(如搜狗、微软拼音)常拦截
U/L,务必切英文输入法再试 - 部分插件(如 Emacs Pro Essentials)会劫持
Ctrl+K前缀,可在Preferences → Package Settings查看键位冲突
多光标选中后统一转换
适合变量重命名、字段名格式统一等场景。每个光标独立处理其所在单词或选区,不会跨光标合并逻辑。
- 用
Ctrl+D(macOSCmd+D)逐个选中相同词(如所有user_name) - 或按住
Ctrl(macOSCmd)+ 鼠标左键,在多个位置点出光标 - 确保每个光标落在目标词上(哪怕只覆盖首字母),再执行
Ctrl+K→ 松手 →Ctrl+U - 注意:若光标落在字符串字面量或注释内,某些语法高亮模式会跳过该区域,导致无反应
整行 / 全文件批量改大小写必须用正则替换
内置快捷键只认“选区”,无法自动识别行边界或语义。想每行首字母大写、全文件转小写等,必须进 Ctrl+H(macOS Cmd+H),勾选 Regular Expression(点 .* 按钮)。
-
\U$0\E:整个匹配项转大写($0表示完整匹配,\E必须配对,漏写会导致后续所有文本变大写) -
\L$0\E:全部转小写 -
\u$0:仅首字符大写(\u只影响紧邻下一个字符,不是整组) - 每行首字母大写:Find What 填
^[^\n\S]*([a-zA-Z]),Replace With 填\U$1\E,可跳过空行、缩进和数字开头的行 - 若文件含 BOM 或 UTF-8 with signature,建议先
File → Reopen with Encoding → UTF-8统一编码,否则^可能失准
驼峰、下划线等命名风格互转需插件
原生完全不支持 snake_case ↔ PascalCase 或 camelCase 互转。Ctrl+K Ctrl+C 只做空格分词的首字母大写,对 iPhone、XMLHttpRequest 无效,也不识别下划线或短横线。
- 推荐安装
Case Conversion插件,右键菜单即有To Camel Case、To Snake Case等选项 - 插件基于分隔符(空格、
_、-)切词,非语法感知,不会识别 JS 变量里的数字或缩写 - 若文本含中文或特殊符号,部分转换可能意外截断,建议先简单清理再转
- 自定义快捷键必须写进
Preferences → Key Bindings右侧的「User」面板,左侧「Default」是只读系统配置,升级后会被覆盖
最易被忽略的是 \U 和 \E 的配对规则——漏写 \E 不会报错,但会导致从匹配开始直到文件末尾所有文本被强制转大写,排查起来非常隐蔽。正则替换前最好先备份或用 Replace 逐条确认。











