sublime text无真正“一键”大小写转换,必须分两步:先按ctrl+k(windows/linux)或cmd+k(macos)松开,再按u/l等键;连按不松手会触发冲突命令,且操作仅作用于选区或光标所在单词。

Sublime Text 没有真正意义上的“一键”大小写转换快捷键,所有内置命令都依赖 Ctrl+K(Windows/Linux)或 Cmd+K(macOS)作为前缀,必须分两步操作——这不是配置问题,是编辑器底层设计逻辑。
为什么 Ctrl+K+U 按了没反应?
常见错误是连按不松手,比如 Ctrl+K+U 三键同时按住。实际上 Ctrl+K 本身不执行任何操作,它只是告诉 Sublime:“接下来的按键,请当作大小写命令处理”。必须:
– 先按住 Ctrl+K → 松开 → 再单独按 Ctrl+U(大写)或 Ctrl+L(小写)
– macOS 用户同理,但注意:系统级快捷键(如 Cmd+K 在 Safari 或终端中常被占用),建议优先用 Ctrl+K 而非 Cmd+K,更稳定
– 如果命令面板里搜 upper_case 能正常执行,说明功能完好,只是快捷键被拦截;可检查输入法是否为英文、右下角是否显示 RO(只读)、当前文件类型是否被插件禁用操作
Ctrl+K, Ctrl+C 和 Ctrl+K, Ctrl+S 是什么?
它们分别是标题式首字母大写和大小写互换命令,但行为很保守:
– title_case(Ctrl+K, Ctrl+C)只按空格切分,对 iPhone、XMLHttpRequest、user_name 这类完全无效
– swap_case(Ctrl+K, Ctrl+S)逐字符翻转,HeLLo → hEllO,适合调试时快速反向验证
– 这两个命令同样受选区控制:没选中时只作用于光标所在单词;多光标时每个光标独立处理对应位置;整列 CSV 数据选中后也能批量应用,但引号内字符串字面量也会被改,需人工核对
正则替换里怎么安全用 \U 和 \l?
在 Find → Replace 中启用正则(点 .* 图标)后,大小写控制符极易失控:
– \U$0\E 表示“仅将整个匹配内容转大写”,\E 是强制终止符,漏写会导致后续所有文本被转大写
– \u$1 只把捕获组第一个字符变大写(注意是小写 u),\l$2 同理(是小写 l,不是数字 1)
– 常见误写:\U$1(缺 \E)、\U$0(错用 $0 但没加 \E)、\L$1(大小写控制符必须全大写:\U/\L,不能小写)
– 实际例子:想把 JSON key 全转小写,可查 "([^"]+)",替换成 "\L$1\E";但注意双引号本身不会被匹配进 $1,所以安全
自定义快捷键必须写进 User 配置区
默认快捷键绑定在只读的 Default 配置里,升级 Sublime 后会被覆盖。想改或加新组合,必须编辑 Preferences → Key Bindings 右侧的用户文件:
– 命令名必须准确:upper_case、lower_case、swap_case、title_case,拼错就报 command not found
– 示例添加:[{"keys": ["ctrl+shift+u"], "command": "upper_case"}]
– 多个快捷键冲突时,Sublime 采用“最后匹配”策略,顺序很重要;如果装了 Vintage 或 Emacs 插件,Ctrl+K 可能被劫持,得去对应插件设置里关掉或重映射
– 真正麻烦的不是记键位,而是每次操作前确认三件事:有没有选中、输入法是不是英文、右下角有没有 RO —— 漏一个,就白按十次











