VSCode默认不支持camelCase与snake_case互转,必须安装Change Case插件才能实现;该插件支持快捷键、命令面板及自定义键绑定,原生适配多光标,且转换精准可靠。

VSCode 里没有内置驼峰 ↔ 蛇形快捷键
直接说结论:VSCode 默认不提供 camelCase 和 snake_case 互转的快捷键,也没有原生命令支持。你按 Ctrl+Shift+P 搜 “camel” 或 “snake”,只会看到零星无关项(比如主题名或扩展关键词),不是编辑功能。
必须装扩展才能实现一键转换
目前稳定好用、更新及时、不乱加广告的主流选择是:Change Case(作者:wmaurer)。它不改文本语义、不依赖 LSP、纯正则处理,适合变量名、字段名、路径片段等局部转换。
- 安装后,选中一段文本(如
userProfileData或api_response_timeout) - 按 Ctrl+Shift+P → 输入
Change Case: to snake case或Change Case: to camel case - 也可自定义快捷键:在
keybindings.json中添加
[
{
"key": "ctrl+alt+c",
"command": "change-case.snake",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "ctrl+alt+m",
"command": "change-case.camel",
"when": "editorTextFocus && !editorReadonly"
}
]
注意:Change Case 对首字母大写的 PascalCase 会转成 pascal_case(小写下划线),不是 snake_case 风格的全小写——这点常被忽略,如果你要严格匹配 Python 的 snake_case 规范(比如函数名),得确保输入是 userProfileData 而非 UserProfileData。
别用“驼峰转下划线”的正则替代方案
有人试过用 VSCode 内置的替换(Ctrl+H + 正则)硬凑,比如:
- 找
([a-z])([A-Z])→ 替换成$1_$2(转蛇形) - 找
_([a-z])→ 替换成$1大写(转驼峰)
问题在于:这类正则无法处理边界情况——XMLHttpRequest 会错切成 x_m_l_http_request;getURL 可能变成 get_u_r_l;isHTTPS 的 HTTPS 全大写部分也容易崩。手动调正则成本远高于装一个 50KB 的扩展。
多光标场景下转换要小心大小写逻辑
如果同时选中多个变量(比如列选中几行的字段名),Change Case 会逐个处理,但它的驼峰规则是「首字母小写,后续单词首字母大写」,即只生成 camelCase,不生成 PascalCase。如果你批量改的是类名或接口名,得额外再执行一次 Change Case: to pascal case,或者换用 case-converter 这类支持模式指定的扩展。
真正容易被忽略的是:转换前是否已去除前后空格、引号、点号等上下文符号。VSCode 的文本操作默认只作用于纯选中文本,userName 在 const userName = ... 中选中时,若多选了一个空格或等号,整个转换就会失败或错位——建议养成先按 Ctrl+Shift+Right 单词级选中,再触发转换的习惯。











