sublime text 原生不支持驼峰转蛇形,必须安装 case conversion 插件;装好后通过命令面板执行 convert: camelcase to snake_case 可正确处理缩写、数字和连续大写字母。

驼峰转蛇形必须装插件,原生不支持
Sublime Text 原生没有 camelCase → snake_case 的转换能力,所有“一键转下划线”的说法都默认你已安装 Case Conversion 插件。没装时按任何快捷键(比如 Ctrl+K Ctrl+C)都不会生效——这不是快捷键冲突或设置问题,是功能根本不存在。
装完插件后,用命令面板最稳
插件装好重启后,别急着找快捷键,先用命令面板确保流程走通:
- 选中目标文本,如
userProfileUrl或getHTTPResponseCode - 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)呼出命令面板 - 输入
Convert: camelCase to snake_case(注意拼写,少字母会报command not found) - 回车执行,结果是
user_profile_url和get_http_response_code
这个命令能正确保留缩写(HTTP→http)、数字位置(userId2→user_id2),且对连续大写字母(XMLParser→xml_parser)有专门处理逻辑。
正则替换只适合简单场景,慎用
如果临时不能装插件,可用正则应急,但仅限纯驼峰、无嵌套缩写、无数字的词,例如 myVariableName:
- 打开替换面板(
Ctrl+H),勾选Regular Expression和In Selection - 查找:
(?,替换为:<code>_\L$1 - 执行全部替换后,再手动把开头可能多出的下划线删掉(如
_my_variable_name→my_variable_name)
这个正则在遇到 iPhone 会变成 i_phone,userID 变成 u_s_e_r_i_d,user2ID 完全无法识别边界——它只靠大写字母切分,不理解语义。
批量改变量名时,光标位置决定成败
用 Ctrl+D 多次选中相同变量名后执行转换,每个光标独立处理,但有个关键前提:
- 每个光标必须落在单词内部(比如
|userProfileUrl中竖线在 u 前面不行,得在 u 后面或中间) - 若光标停在单词外(如空格后、括号前),命令会静默失败,不报错也不改动
- 转换后不会自动更新引用处,比如把
getUserData改成get_user_data,调用点getUserData()不会变——得自己用Alt+F3手动确认上下文
真正麻烦的不是转换动作本身,而是混合命名(如 apiV2Response)和带特殊符号(如 user-name)的字段,这类必须靠插件的多分隔符识别逻辑,正则或原生命令都撑不住。











