Sublime Text大小写转换需两段式命令:先Ctrl+K松手,再按U/L等键;正则替换中\U需配对\E,否则全行大写;未选中时仅处理光标所在单词,支持多光标批量操作。

Ctrl+K 松手再按 U/L 不是三键组合,是两段式命令前缀
Sublime Text 没有真正意义上的“一键”大小写转换快捷键。Ctrl+K(Windows/Linux)或 Cmd+K(macOS)本身不执行任何操作,它只是告诉编辑器:“接下来的按键,请当作大小写命令处理”。必须先按住 Ctrl+K → 松开 → 再单独按 Ctrl+U(转大写)、Ctrl+L(转小写)、Ctrl+C(标题式)、Ctrl+S(互换)。连按不松手,大概率触发 Ctrl+K, Ctrl+K(删到行尾)等冲突命令,或被中文输入法吞掉后续键。
常见失效原因包括:
- 文件右下角显示
RO(只读),操作静默失败 - 输入法处于中文状态,
U/L键未被识别 - 插件如
Vintage或Emacs Pro Essentials劫持了Ctrl+K前缀 - 光标落在字符串字面量或注释内,部分语法高亮模式(如 Python、JSON)会跳过该区域
正则替换中 \U 和 \E 必须配对,漏 \E 会导致全行失控
在 Ctrl+H(替换面板)中启用正则(点 .* 图标)后,\U 不是“让下一个字符大写”,而是开启“全大写模式”,持续生效直到遇到 \E 或匹配结束。漏写 \E 是最隐蔽也最常踩的坑——结果不是只改匹配项,而是从匹配位置开始,后面所有文本全被转成大写。
正确用法示例:
-
\U$0\E:整个匹配内容转大写($0表示完整匹配) -
\L$1\E:仅捕获组 1 全转小写 -
\u$2:仅捕获组 2 的首字符大写(注意是小写u,不是U) -
\l$3:仅捕获组 3 的首字符小写(注意是小写l,不是数字1)
错误写法:\U$1(缺 \E)、\U$0(同样缺 \E)、\L$1(大小写控制符必须全大写:\U/\L,不能小写)
没选中时只作用于光标所在单词,多光标可批量处理变量名
upper_case 和 lower_case 命令永远只处理当前选区;没选中任何文本时,并不会扫描整行或识别命名风格,而是严格定位到光标所在的**单个单词**(以非字母/数字边界切分)。比如光标停在 userName 中任意位置,结果是 USERNAME;停在 user_name 上,结果是 USER_NAME,不会拆成下划线转驼峰。
多光标是批量处理字段名、API key、变量名最实用的方式:
-
Ctrl+D逐个匹配相同词,再统一执行Ctrl+K→ 松手 →Ctrl+U -
Ctrl+鼠标左键手动点出多个光标,每个光标独立处理其所在单词或选区 - 整列 CSV 数据选中后也能批量应用,但引号内字符串字面量也会被改,需人工核对
注意:-(连字符)会被视为单词边界,first-name 会被当两个词处理;但 _ 和 $ 属于单词一部分。
自定义快捷键必须写进 User 配置,且命令名不能拼错
原生不支持单键触发,但可以自定义。关键点:只能编辑 Preferences → Key Bindings 右侧的「User」面板(左侧 Default 是只读的,升级必丢),命令名必须拼写准确,例如 upper_case,拼错会报 command not found。
粘贴以下内容进 User 面板即可生效(无需重启):
[{"keys": ["ctrl+shift+u"], "command": "upper_case"}, {"keys": ["ctrl+shift+l"], "command": "lower_case"}]
如果装了 Case Conversion 等插件,原生命令仍存在,但部分插件会劫持 Ctrl+K 前缀,导致默认快捷键失效——此时要么禁用插件,要么在用户配置里显式重绑定。另外,Find in Files(Ctrl+Shift+F)不支持 \U 类语法,它只会原样输出字符串,不会转换。


















