VSCode中一键将选中文本转为小写需先选中文本,再按Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入“Transform to Lowercase”执行;不可用Ctrl+U(该为大小写互换),且默认无快捷键,可自定义为Ctrl+Alt+L。

VSCode 里怎么一键把选中文本全转成小写
直接按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入 Transform to Lowercase 回车就行。这是 VSCode 内置命令,不用装插件,也不用改设置。
常见错误是误按 Ctrl+U —— 那是“Toggle Case”(大小写互换),不是“全转小写”。比如 HELLO World 按 Ctrl+U 会变成 hello wORLD,完全不是你想要的。
- 必须先选中文字,否则命令无效(不会报错,但没反应)
- 支持多行、跨行、含空格和符号的文本,只要在编辑器里能被选中,就可转换
- 对中文、数字、标点无影响,只作用于 ASCII 字母
想用快捷键代替命令面板?自定义快捷键最稳
VSCode 默认没给 Transform to Lowercase 绑定快捷键,但可以自己加。关键是别覆盖系统级常用组合,比如别设成 Ctrl+L(那是“聚焦地址栏”)。
打开快捷键设置:Ctrl+K Ctrl+S → 右上角点击“打开键盘快捷方式(JSON)”图标 → 在数组里加一条:
[
{
"key": "ctrl+alt+l",
"command": "editor.action.transformToLowerCase",
"when": "editorTextFocus && !editorReadonly"
}
]
说明:
-
ctrl+alt+l是推荐组合:左手按住Ctrl+Alt,右手单击L,手指不打架,且极少被其他软件占用 -
when条件确保只在可编辑的文本编辑器中生效,避免在搜索框、终端里误触发 - 如果已存在冲突快捷键,VSCode 会在设置界面标黄提示,删掉旧条目再保存
为什么不能直接用 “change all occurrences” 或正则替换
有人试过用 Ctrl+H 打开替换面板,输入 [A-Z] + 正则开启,再填 \L$0 —— 这在 Sublime 或 Vim 里可行,但在 VSCode 默认不支持 \L 这类大小写转换元字符。
VSCode 的正则引擎(基于 JavaScript)不识别 \L、\U、\l、\u 这些 Perl 风格的大小写控制符。所以:
- 用正则
[A-Z]替换为xxx只能做固定字符串替换,无法动态转小写 - 启用“匹配大小写”(
Aa按钮)只影响查找逻辑,不影响替换结果 - 真要用正则批量处理,得靠插件如
Regex Previewer或写 JS snippet,反而更重
遇到光标乱跳、转换失败?检查这三处
不是所有场景都支持大小写转换。最常踩的坑是编辑器状态不对,而不是命令本身有问题。
- 当前文件类型被识别为只读模式(比如打开的是
node_modules下的文件,或文件权限为只读),命令静默失败 - 语言模式被设成了
plaintext以外的特殊模式(如markdown、jsonc),某些版本的 VSCode 会禁用转换命令(尤其老版本 1.7x) - 安装了干扰编辑器命令的插件,例如某些“代码格式化增强”类插件会劫持
editor.action.*命令链
验证方式:打开一个新 .txt 文件,粘贴 ABC def GHI,全选后执行命令。如果这里成功,问题就出在当前文件环境或插件上。
复杂点在于:这个命令底层依赖 VSCode 的文本模型 API,而不同语言服务(Language Server)可能拦截或重写编辑操作。所以别指望它在所有嵌入式编辑器(比如 GitHub Pull Request 界面里的编辑框)里都能用。


















