VSCode 默认不支持驼峰与下划线互转,需安装Change Case插件并自定义快捷键(如Alt+C C/S),转换效果依赖光标位置或选中范围,对缩写和嵌套结构处理不佳。

VSCode 里没有内置驼峰/下划线互转快捷键
默认安装的 VSCode 不提供 camelCase ↔ snake_case 一键切换功能,按 Ctrl+Shift+P 搜 “rename” 或 “case” 都找不到对应命令。这不是你配置错了,是它压根没实现——得靠插件补足。
推荐插件:Change Case + 自定义快捷键
Change Case 是轻量、稳定、支持多语言的插件(作者:wmaurer),安装后提供 changeCase.snakeCase、changeCase.camelCase 等命令。但默认没绑定快捷键,需手动配:
- 打开设置 →
Keyboard Shortcuts(或按Ctrl+K Ctrl+S) - 左下角点“打开键盘快捷方式(JSON)”图标,编辑
keybindings.json - 加两条规则(示例用
Alt+C系列,避免和系统冲突):
[
{
"key": "alt+c c",
"command": "changeCase.camelCase",
"when": "editorTextFocus && !editorReadonly"
},
{
"key": "alt+c s",
"command": "changeCase.snakeCase",
"when": "editorTextFocus && !editorReadonly"
}
]
注意:when 条件确保只在编辑器有焦点且可编辑时生效,否则可能误触全局命令。
选中范围决定转换粒度
这个插件的行为严格依赖光标位置和选中状态,不是“智能识别变量名”,容易出错:
- 光标停在单词内(如
user_name的任意位置)→ 自动识别并转换整个标识符 - 选中部分字符(如只选了
user)→ 只转换选中部分,结果可能是userName→user_name→user_name(不完整) - 跨行或多词选中(如
first_name last_name)→ 全部转成一个firstNameLastName,不是逐词处理
所以操作前务必确认:光标在变量名上,或全选该变量(双击或 Ctrl+D 选中相同词)。
遇到缩写或 PascalCase 会出问题
Change Case 对常见缩写(如 URL、ID、HTTP)不敏感,parseURLString → parse_url_string 是对的,但 userID 会被转成 user_i_d,而不是预期的 user_id。
如果你项目里大量使用缩写,建议:
- 配合
multi-command插件 + 正则替换预处理(例如先Ctrl+H替换ID→Id) - 或者改用
Snake Case to PascalCase这类专用插件(但兼容性略差,更新慢)
真正麻烦的是嵌套结构:比如 getHTTPResponseCode 转下划线,结果是 get_http_response_code,没问题;但 XMLHttpRequest 会变成 x_m_l_http_request —— 这种得手动修,别指望自动解决。


















