sublime text 无原生驼峰命名切换命令,可靠方案只有插件(如case conversion)或正则替换;ctrl+k是命令前缀需松手再按u/l,且须英文输入法、非只读状态;正则仅适用于纯英文无数字的snake_case转换。

Sublime Text 没有一键切换驼峰命名的原生命令,所有“一键”说法都是误解或依赖插件;真正能稳定处理 snake_case → camelCase 或 PascalCase 的路径只有两条:用插件,或用正则+手动分步控制。
Ctrl+K 不是快捷键,是命令前缀
很多人卡在 Ctrl+K+U 没反应,本质是因为把它当成三键组合。实际上 Ctrl+K(Windows/Linux)或 Cmd+K(macOS)本身不执行任何操作,它只是告诉 Sublime:“接下来那个键,请按大小写子命令解析”。
- 必须严格两步:
Ctrl+K→ 松手 →U(小写)或L(小写)或Ctrl+U(大写)——注意大小写命令绑定的是U和L单字母键,不是Ctrl+U本身 - 连按不松手会触发
Ctrl+K, Ctrl+K(删到行尾)等冲突命令 - 输入法处于中文状态时,
U/L键常被系统吞掉,务必切英文输入法 - 文件右下角显示
RO(只读)时,转换静默失败,不会报错也不会生效
正则替换实现 snake_case → camelCase(有限但可控)
原生不支持驼峰转换,但可用正则逼近简单场景。关键在于 \U 和 \E 必须配对,且 \U 只作用于紧随其后的捕获内容。
- 适用前提:纯英文、无数字、无连续下划线,如
user_name_input - Find:
(? —— 匹配下划线或短横线后紧跟的字母(排除行首) - Replace:
\U$1—— 把捕获的字母转大写 - 务必勾选
Regular Expression和In Selection,否则会扫全文件 - 错误示例:
\U$1后漏\E不影响此例,但若后续还有替换逻辑,极易引发连锁大写
Case Conversion 插件才是真·驼峰方案
想可靠处理 http_status_code → httpStatusCode、APIResponse → apiResponse 这类含缩写/大写字母的转换,必须用插件。Case Conversion 是目前兼容性最好、命令最清晰的选项。
- 安装后,快捷键默认为
Ctrl+Shift+P→ 输入Convert to camelCase等命令 - 它能识别已有大写字母(如
XMLHttpRequest),保留XML不拆,只转后续部分 - 注意:插件会覆盖原生
Ctrl+K, Ctrl+U绑定,冲突时优先执行插件命令 - 命令名严格区分:
snake_to_camel、camel_to_snake、snake_to_pascal,拼错就报command not found
多光标批量改变量名时,光标位置决定结果
用 Ctrl+D 多次选中相同变量名后执行大小写命令,每个光标独立处理——但前提是光标落在词内,否则可能只转单个字符或失效。
- 正确做法:选中整个
user_name再Ctrl+D,确保每个光标都覆盖完整标识符 - 错误做法:光标只停在
u上,执行Ctrl+K, U会把u变U,其余字母不动 - 若变量含数字(如
user_id_2),原生命令会把2当字母转成2(无变化),但插件通常忽略数字,更安全 - 正则替换中若用
\w捕获,数字也会被纳入$1,\U$1对数字无效,但逻辑上已偏离预期
真正难的不是怎么按快捷键,而是判断当前文本是否适合用原生命令——含缩写、数字、混合大小写的标识符,一律交给插件或外部脚本;纯下划线分隔的简单 case,才值得花时间调正则。别在 Ctrl+K 上反复试错,先看清楚你要转的是什么。











