VSCode无原生一键大小写反转命令,需用内置transformToUppercase/lowercase双绑定快捷键或安装change-case扩展实现toggle功能。

VSCode 里没有内置的「一键大小写反转」命令
默认安装的 VSCode 确实不提供 toggleCase 或类似名称的原生命令,你搜不到、也找不到对应菜单项。这不是你配置错了,是它本来就没有——别在设置里反复翻「keyboard shortcuts」白费时间。
用内置命令 editor.action.transformToUppercase 和 editor.action.transformToLowercase 搭配快捷键实现「伪一键切换」
虽然没直接反转,但两个方向的转换命令都存在,靠快捷键组合+简单逻辑就能逼近“按一次就翻转”的效果。关键在于:别指望单个按键,而是用「同一个快捷键绑定两套逻辑」。
- 打开快捷键设置:
Ctrl+K Ctrl+S(Windows/Linux)或Cmd+K Cmd+S(macOS) - 搜索
transformToUppercase,右键 → «Add Keybinding»,设成你想要的快捷键(比如Ctrl+Shift+U) - 再搜索
transformToLowercase,同样绑定到Ctrl+Shift+U—— 此时 VSCode 会提示冲突,点「Add Keybinding」后选择「When expression」 - 在条件表达式里填:
editorTextFocus && !editorReadonly && editorLangId != 'plaintext' && editorTextFocus && !editorHasSelection(先留空也行,后面补) - 更稳妥的做法:改用扩展
change-case,它提供了真正的changeCase.toggle命令,支持无选中文本时自动识别当前单词的大小写状态再翻转
选中内容为空时,change-case 扩展能智能判断单词并反转
纯靠原生命令,光标没选中任何文本时按 Ctrl+Shift+U 是没反应的;而 change-case 扩展会自动把光标所在单词作为目标,识别出它是全大写、全小写还是驼峰,再执行对应反转(比如 HELLO → hello,userName → USERNAME)。
- 安装扩展:
change-case(作者:wmaurer) - 绑定快捷键到
changeCase.toggle(不是changeCase.uppercase) - 注意:它对中文、数字混排的单词(如
user2Name)处理较保守,可能只转字母部分;遇到XMLHttpRequest这类全大写缩写,会变成xmlhttprequest,不会保留首字母大写 - 如果项目里大量用 PascalCase,建议额外装
polymorphic-case,它支持更细粒度的「Pascal → kebab」等转换,但不解决「一键反转」这个核心需求
自定义命令 + 快捷键也能做,但没必要
有人用 VSCode 的 workbench.action.terminal.sendSequence 配合 shell 脚本或 JS 插件硬写一个反转逻辑,甚至调用 node 做正则替换。这些方案能跑通,但引入了外部依赖、启动延迟、跨平台兼容问题(比如 Windows 上 PowerShell 和 CMD 对大小写处理不一致),还容易和 ESLint/Prettier 的格式化时机冲突。
- 除非你在写一个私有插件,否则不要碰
package.json贡献commands -
change-case已覆盖 95% 场景,体积小、更新勤、无运行时开销 - 真正容易被忽略的是:VSCode 默认快捷键
Ctrl+Shift+X是「扩展面板」,别误按成它去搜「case」——直接用快捷键面板Ctrl+K Ctrl+S搜命令名最稳











