sublime中大小写转换需先按ctrl+k(或cmd+k)松手再按u/l,非三键组合;仅作用于选区或光标所在单词;正则替换中\u必须配对\e,否则全文件变大写;原生不支持snake_case与pascalcase互转。

Sublime 里没有真正意义上的“一键”切换大小写——所有原生大小写命令都依赖 Ctrl+K(Windows/Linux)或 Cmd+K(macOS)作为命令前缀,必须松手后再按后续键。所谓“快捷”,其实是两段式操作,卡在这一步的人最多。
Ctrl+K 松手再按 U/L 才生效,连按会触发删行等冲突命令
这不是三键组合,而是编辑器的命令前缀机制:Ctrl+K本身不执行任何操作,只表示“接下来输入的是大小写子命令”。连按 Ctrl+K+U 不松手,系统收到的是 Ctrl+K 后立刻接 U,Sublime 会把它识别为其他命令(比如 Ctrl+K, Ctrl+K 删到行尾),或被输入法/插件直接拦截。
- 正确流程:按住
Ctrl+K→ 松开 → 单独按Ctrl+U(转大写)或Ctrl+L(转小写) - macOS 用户同理,把
Ctrl全部换成Cmd,但注意系统级快捷键(如Cmd+K在 Safari 中是聚焦搜索框)可能冲突 - 文件右下角显示
RO(只读)时,操作静默失败,需先取消只读或另存为 - 中文输入法(尤其搜狗、微软拼音)常吞掉
U/L键,务必切英文输入法再试
选区决定作用范围:没选中就只动光标所在单词
upper_case 和 lower_case 命令完全不猜意图,只认当前选区。哪怕你只选了一个字母,它也只转换那个字母;没选中任何内容时,它默认只处理光标所在的**单个单词**(不是整行,也不识别 camelCase 或 snake_case)。
- 选中
"Hello World!"→ 转成"HELLO WORLD!"(空格和标点一并处理) - 多行选中 → 每行独立转换,不会跨行对齐或合并逻辑
- 多光标(
Ctrl+D逐个选,或Ctrl+鼠标左键点出)→ 每个光标位置独立处理其所在单词或选区 - 光标落在字符串字面量或注释内时,部分语法高亮模式会跳过该区域,导致无反应
正则替换中 \U 和 \E 必须配对,漏写 \E 会导致全文件变大写
想批量改整行、全文件或首字母大写?得进 Ctrl+H(Cmd+H)替换面板,勾选 Regular Expression(点 .* 按钮)。这里 \U 不是“让下一个字符大写”,而是开启“全大写模式”,必须用 \E 显式终止,否则影响范围会失控。
- 正确写法:
\U$0\E(整个匹配项转大写)、\L$0\E(全部转小写)、\u$0(仅首字符大写) - 错误写法:
\U$0→ 从匹配开始直到行尾所有文本都会被强制转大写 - 每行首字母大写:Find What 填
^[^\n],Replace With 填\u$0,再点Replace All -
\u和\l(小写 L,非数字 1)只影响紧邻的下一个字符,不能用于捕获组整体
变量命名转换(snake_case ↔ PascalCase)原生不支持,别硬套 Ctrl+K,Ctrl+U
Ctrl+Shift+U 是全大写,对 user_name_input 执行后变成 USER_NAME_INPUT,完全不是 UserNameInput。原生功能不识别分词边界,也不做首字母保留、其余小写等逻辑。
- 真正可靠的方案是 Python 构建系统:写个脚本按
_拆分、capitalize()每个词、再拼接,可稳定处理http_status_code、user_id_2等边缘情况 - 手动可控流程:装
Text Pastry插件 → 选中api_response_data→Ctrl+Shift+P输入Text Pastry: Split on回车后输_→ 光标停在每个词开头 →Ctrl+Shift+U首字母大写 → 再Text Pastry: Join lines - 正则
(? + <code>\U$1仅适用于纯英文无数字场景,对http_status_code无效(http前无分隔符)
最易被忽略的点是:\U 和 \E 的配对问题极其隐蔽——它不会报错,只会默默污染后续所有文本。另外,所有自定义快捷键必须写进 Preferences → Key Bindings 的右侧(User)面板,改 Default 文件会在升级后被覆盖。











