跳转到主内容
极星编程网:以代码为星,赴技术山海!

VSCode安装ChangeCase插件_快速切换变量命名为驼峰或蛇形

VSCode原生不支持camelCase↔snake_case转换,因内置命令仅处理大小写而不识别分隔符;必须安装change-case插件,通过快捷键或命令面板实现可靠转换。 VSCode 原生不支持一键切换 camelCase ↔ snake_case,必须装
change-case
插件才能可靠实现,且默认快捷键不覆盖所有常用格式。 为什么不能只靠原生命令做 camelCase/snake_case 转换 VSCode 内置的
editor.action.transformToUppercase
和
editor.action.transformToLowercase
只处理纯大小写,对单词分隔(如空格、下划线、连字符)无感知。比如选中
user_name
按大写,结果是
USER_NAME
,不是
userName
;反过来也一样——它根本不识别“蛇形”或“驼峰”结构。 命令面板里搜
Transform to Title Case
仅首字母大写,对
user_profile_data
→
User_profile_data
这种无效,更不会去掉下划线。 原生命令只适合全大写/全小写/首字大写等简单场景 涉及分隔符转换(
_
↔
camel
↔
-
)必须依赖插件解析词边界 不装插件时,手动正则替换易出错(比如误改字符串或注释里的下划线) 安装 change-case 后怎么用快捷键快速转 camelCase 或 snake_case 插件作者 wmaurer 提供了开箱即用的快捷键,但 macOS 和 Windows 默认键位不同,且
snake_case
不在默认绑定里。 macOS:选中文本后,
Cmd+K Cmd+T
→
camelCase
,
Cmd+K Cmd+C
→
PascalCase
Windows/Linux:
Ctrl+K Ctrl+T
和
Ctrl+K Ctrl+C
同理
snake_case
和
kebab-case
需通过命令面板调用,或手动绑定快捷键 若快捷键没反应,先确认是否真的选中了文本(光标停在单词上但没选中,插件不触发) 绑定
snake_case
快捷键示例(写入
keybindings.json
): VSCode 1.118 微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。 下载
[{ "key": "cmd+k cmd+s", "command": "changeCase.snakeCase", "when": "editorTextFocus && editorHasSelection" }]
多光标 + 跨行变量名批量转 snake_case 容易踩的坑 插件支持多光标,但转换逻辑严格按“当前光标所在位置的连续非空白字符”切分,不智能跳过引号、括号或点号。 选中
user.name
和
user_profile
两处,执行
snake_case
,前者变成
user.name
(点号阻断,只转
user
和
name
各自),后者才变
user_profile
JSON 键名如
"userProfile"
,若只选中
userProfile
(不含引号),能正常转;若连引号一起选,会把引号也当文本参与转换,结果变成
"user_profile"
—— 看似对,但实际是巧合 含数字的变量如
userId2
,插件转
snake_case
得
user_id2
(保留数字位置),但
XMLHttpRequest
会被转成
xmlhttp_request
,缩写全小写,无法保留首字母大写逻辑 不选中任何文本时,change-case 的 toggle 功能到底怎么工作 这是插件最实用但最容易误解的功能:
changeCase.toggle
命令不要求选中文本,它会自动识别光标所在单词,并根据其当前形态决定下一步动作。 光标停在
user_name
上(未选中),按绑定的 toggle 快捷键 → 自动转为
userName
再按一次 → 回到
user_name
;停在
UserName
上则转为
user_name
但它只识别 ASCII 字母 + 数字 + 下划线/连字符组合,遇到
user.name.data
或
user[name]
会失败,只处理第一个点前的部分 中文混排如
用户名Data
不会被识别为有效标识符,直接跳过 真正复杂的是混合命名风格的项目:既有
PascalCase
类名,又有
snake_case
API 字段,还有
camelCase
局部变量。这时候靠 toggle 容易翻错方向,建议明确用
changeCase.camelCase
或
changeCase.snakeCase
替代,少依赖自动判断。

相关文章