Sublime Text 大小写转换需先按 Ctrl+K 松手再按 U/L,正则中 \U 必须配 \E 限定范围,title_case 不处理连字符和撇号,自定义快捷键须改 User 面板且命令名准确。

Sublime Text 里没有真正意义上的“一键”大小写转换——所有默认快捷键都依赖 Ctrl+K(macOS 是 Cmd+K)这个命令前缀,必须松手后再按动作键,否则大概率失效或触发其他命令。
为什么 Ctrl+K+U 没反应?
因为 Ctrl+K 不是组合键的一部分,而是进入“大小写命令模式”的前导动作。系统不会识别三键连按,常见后果包括:
- 误触发
Ctrl+Shift+K(删整行) - 被中文输入法拦截(尤其 Windows)
- 编辑器无响应,光标卡住
正确操作顺序只有这一种:Ctrl+K → 松手 → Ctrl+U(大写)或 Ctrl+L(小写)。macOS 用户同理,把 Ctrl 全部换成 Cmd 即可。
正则替换里 \U 怎么只大写捕获内容?
\U 是开启“全大写模式”,不是只作用于下一个字符——它会持续生效直到遇到 \E 或匹配结束。漏掉 \E 是最常踩的坑,会导致整行后续文本全变大写。
比如在 Find → Replace 中启用正则后:
- ✅ 正确:
\U$1\E→ 仅把捕获组 $1 转为大写 - ❌ 错误:
\U$1→ $1 及其后面所有文本都会被强制大写 - ⚠️ 注意:
\u$1只影响 $1 的第一个字母,哪怕 $1 是 “hello”,结果也只是 “Hello”
另外,\U 和 \E 在 Find in Files(Ctrl+Shift+F)中完全不生效,那里只会原样输出字符串。
title_case 为什么对 iPhone、don't 失效?
内置的 title_case 命令(对应快捷键 Ctrl+K → Ctrl+C)只按空格切分单词,对连字符、撇号、下划线后的字母不做特殊处理:
-
multi-word→Multi-word(连字符后仍是小写) -
iPhone app→Iphone App(丢失 P 大写) -
don't panic→Don't Panic(纯属因空格巧合成立)
如需智能标题格式(如保留缩写、处理撇号),必须装插件,例如 TitleCase 或 Case Conversion,并手动绑定快捷键(如 Ctrl+Alt+T)。但要注意:插件一旦禁用,其命令(如 smart_title_case)会直接报错 command not found,而内置命令不受影响。
自定义快捷键为什么改了没用?
所有快捷键修改必须加到 Preferences → Key Bindings 右侧的「User」面板,左侧「Default」是只读系统配置,升级 Sublime 后会被覆盖。
添加时还要注意三点:
- 命令名必须准确,比如
"command": "upper_case",拼错就无效 - 重复
keys会覆盖(Sublime 按加载顺序取最后一条),建议添加前全文搜索确认无冲突 - 多光标下每个光标独立执行命令,适合批量改变量名,但也意味着如果光标落在注释或字符串里,也会一并转换——代码文件里务必先全局搜索确认上下文
真正卡住人的,从来不是记不住快捷键,而是 Ctrl+K 后那一秒的松手时机,以及 \U 后面缺了个 \E。











