必须手动配置快捷键:按ctrl+k ctrl+s打开键盘快捷方式,搜索transform to uppercase,右键“添加快捷键”设为ctrl+alt+u,确保when条件为editortextfocus && !editorreadonly,且需先选中文本、焦点在编辑器内才生效。

怎么给 Transform to Uppercase 绑定快捷键
VSCode 默认不绑定任何大小写转换快捷键,必须手动配置。最稳妥的方式是通过图形界面操作,避免 JSON 手误:
- 按
Ctrl+K Ctrl+S(Windows/Linux)或Cmd+K Cmd+S(macOS)打开键盘快捷方式面板 - 搜索
Transform to Uppercase,找到对应命令 - 右键 → “添加快捷键”,按下你想要的组合(比如
Ctrl+Alt+U),回车确认 - 检查下方
when条件是否为editorTextFocus && !editorReadonly—— 这是关键,否则可能在搜索框里误触发
别用 Ctrl+Shift+U:它在部分系统中被输入法或远程工具劫持;Ctrl+Alt+U 冲突概率低,左手按住 Ctrl+Alt、右手单击 U 也更顺手。
为什么配了快捷键却没反应
不是命令失效,而是作用域或状态不对。常见卡点如下:
- 光标没真正选中文本 —— 只把光标停在单词上不算,必须高亮至少一个字符(哪怕是一个字母)
- 焦点不在编辑器文本区 —— 终端、调试控制台、设置页、文件树、Markdown 预览模式都不响应该命令
- 快捷键被其他软件拦截 —— 尤其是中文输入法(如搜狗、微软拼音)常吞掉
Ctrl+Shift+P或自定义组合 -
when条件被改错 —— 比如误设成textInputFocus,会导致在搜索框里意外触发,反而在编辑器里失效
验证方法:配完后在快捷键面板顶部搜索你设的组合键(如 Ctrl+Alt+U),若显示“2 个匹配”,说明有冲突,需禁用另一个。
Transform to Lowercase 和 Change Case to Title Case 的行为差异
这三个命令名字相似,但逻辑完全不同,不能混用:
-
Transform to Lowercase:纯字符映射,只改 ASCII 字母,GET_USER_ID→get_user_id,空格、下划线、数字原样保留 -
Change Case to Title Case:按空格/符号切分单词,每个单词首字母大写,其余小写 ——http_status_code→Http_Status_Code,XMLHttpRequest→Xmlhttprequest(它不识别驼峰) -
Transform to Uppercase不会跳过字符串字面量 ——console.log("UserName")里的"UserName"也会变成"USERNAME",这不是 bug,是设计如此
对 Unicode 支持有限:法语 café 转大写后是 CAFÉ(重音保留),但土耳其语的 i/I 映射会被忽略;中文、日文、emoji 完全不变。
想实现逐字符大小写反转(toggle)怎么办
VSCode 原生没有 toggleCase 命令。所谓“一键反转”(a↔A、B↔b)必须靠扩展或正则临时救急:
- 装官方推荐扩展
change-case,它提供Change Case: Toggle Case命令,支持多光标和跨行 - 不用插件时,可用正则替换应急:打开
Ctrl+H,开启正则,查([a-z])|([A-Z]),替换成$2$1—— 但仅适用于纯 ASCII 字母,且无法处理带重音符号的字符 - 别指望
Ctrl+U:那是旧版 Vim 模式快捷键,在默认 VSCode 中未启用,且与格式化命令冲突
真正容易被忽略的是语义风险:直接用文本转换改变量名,会破坏 TypeScript 类型引用、误伤字符串字面量、跳过注释里的上下文 —— 如果目标是重命名符号,优先用 F2,而不是大小写命令。











