sublime text无真正一键大小写转换,必须先按ctrl+k(win/linux)或cmd+k(macos)松手后再按u(大写)/l(小写);连按无效因设计为两段式命令前缀,且受输入法、只读模式、选区范围及正则中\u需配\e等限制。

Sublime Text 没有真正意义上的“一键”大小写转换——所有默认操作都必须经过 Ctrl+K(Windows/Linux)或 Cmd+K(macOS)这个前缀键,松手后再按动作键。这不是快捷键坏了,是设计如此。
为什么 Ctrl+K+U 没反应?
因为 Ctrl+K 本身不执行任何操作,它只是进入“大小写命令模式”的入口。连按 Ctrl+K+U 实际触发的是系统级组合键冲突或 Sublime 的其他命令(比如 Ctrl+K, Ctrl+Shift+K 删整行),根本没把指令送到大小写模块。
- 必须严格两步:
Ctrl+K→ 松手 →Ctrl+U(大写)或Ctrl+L(小写) - macOS 用户同理,
Cmd+K→ 松手 →Cmd+U/Cmd+L - 输入法处于中文状态时,
U或L常被拦截,切英文再试 - 文件右下角显示
RO(只读)时,转换静默失败,需先取消只读或另存为
upper_case 和 lower_case 命令的实际作用范围
这些命令永远只处理当前选区:没选中任何文本时,仅作用于光标所在单词(不是整行,也不识别 camelCase);多行选中时,每行独立转换;多光标则每个光标位置各自处理其覆盖的单词或选区。
- 想批量改变量名?先用
Ctrl+D多次选中相同词(如user_name),再统一执行Ctrl+K→ 松手 →Ctrl+U - CSV 字段名全转小写?全选列 →
Ctrl+K→ 松手 →Ctrl+L,但注意字符串字面量里的内容也会被转,得人工核对 - 语法高亮为
Python、JSON等时,若光标落在字符串或注释内,转换可能跳过——Sublime 默认只处理“普通文本区域”
正则替换里 \U 和 \E 必须配对
在 Find → Replace 面板启用正则(点 .* 按钮)后,\U 不是“让下一个字符大写”,而是开启“全大写模式”,持续生效直到遇到 \E 或匹配结束。漏掉 \E 是最隐蔽也最常踩的坑。
- ✅ 正确:
\U$1\E→ 仅捕获组 $1 变大写 - ❌ 错误:
\U$1→ $1 及其后所有文本(包括非匹配部分)全变大写 -
\u$0表示仅首字符大写(注意是小写 u,不是\U),\l$0同理,且\l是小写 L,不是数字 1 -
\U和\E在 Find in Files(Ctrl+Shift+F)中完全不生效,那里只会原样输出
title_case 命令为何不处理 iPhone 或 multi-word?
title_case(触发方式:Ctrl+K → 松手 → Ctrl+C)只按空格切分单词,对连字符、撇号、下划线后的字母无感。它很保守,不会尝试智能识别驼峰或复合词。
-
don't know→Don't Know(正确) -
multi-word→multi-word(不变) -
iPhone→iPhone(不变) - 需要真正智能标题格式?装插件
Case Conversion或TitleCase,原生命令做不到
最易忽略的一点:所有自定义快捷键(比如想绑定 Ctrl+Shift+U 到 upper_case)必须写进 Preferences → Key Bindings 右侧的「User」面板,且 command 名必须一字不差写成 upper_case,写成 uppercase 或 to_upper 都会静默失败。











