vscode切换中文界面需安装“chinese (simplified) language pack”并设置locale为"zh-cn",重启后生效;输入法切换与界面语言无关,需单独配置如auto-language-switch或im-select。

VSCode 本身不提供“一键切换界面语言”的快捷键,所谓“快速切换”实际分两类场景:改界面语言(菜单/设置等文字)和改输入法(打字时中英文状态)。两者机制完全不同,混用会导致重启无效、输入法卡死、Esc 失效等问题。
ConfigureDisplayLanguage 命令必须配 zh-cn(小写连字符)
这是最常踩的坑:命令面板里搜 ConfigureDisplayLanguage 后,列表里选 zh-cn 才生效;zh-CN、zh_cn、Chinese (Simplified) 都会被忽略,重启后仍是英文界面。
- 执行
Ctrl+Shift+P→ 输入ConfigureDisplayLanguage→ 回车 - 在下拉列表中**手动滚动找到
zh-cn**(不是靠搜索匹配,它不支持模糊匹配) - 选中后弹窗提示重启,此时必须彻底退出 VSCode:Windows 查任务管理器杀掉所有
Code.exe进程,macOS 在活动监视器里结束Code和Code Helper
Auto-Language-Switch 插件只管输入法,不管界面语言
装了 Auto-Language-Switch 却发现注释还是打不出中文?说明它没起作用——这个插件只监听光标位置(如进入 // 或 " 内自动切中文输入法),但前提是系统级输入法已启用且可被控制。它对界面语言完全无感。
- 确认已安装并启用该插件(重启非必需,但建议重载窗口
Developer: Reload Window) - 检查 VSCode 是否有焦点:终端、调试控制台、设置页里它不工作
- macOS 用户需额外允许辅助功能权限:系统设置 → 隐私与安全性 → 辅助功能 → 勾选 VSCode
- Windows 用户若用搜狗/微软拼音,可能需在输入法设置里关闭“智能中英文切换”,否则插件指令被拦截
VSCode Vim 用户必须关掉 vim.useCtrlKeys
装了 Vim 插件后,按 Esc 只退出插入模式、却不切英文输入法?根本原因不是配置漏了,而是 vim.useCtrlKeys 默认为 true,它劫持了 Esc 事件链,系统输入法收不到原始信号。
- 打开设置(
Ctrl+,),搜索vim.useCtrlKeys,设为false - 执行
Developer: Reload Window(不是普通重启) - 验证:进插入模式打中文 → 按
Esc→ 应同时退出插入模式 + 输入法图标立刻变英文 - 如果必须保留
vim.useCtrlKeys: true(比如依赖Ctrl+i跳转),那就得用im-select手动绑定命令,不能依赖 Esc 自动触发
im-select 是跨平台输入法控制的底层依赖
所有自动切换方案(VSCode Vim、Neovim、Auto-Language-Switch 的高级模式)最终都调用 im-select 命令行工具。它不处理界面语言,只读写系统输入法 ID。ID 错一个字符,切换就静默失败。
- macOS 安装:
brew tap daipeihust/tap && brew install im-select,运行im-select得到类似com.apple.keylayout.US的输出,这就是你要的 ID - Windows 下下载
im-select.exe,放至C:\Program Files\im-select\并加进 PATH,然后在 PowerShell 里运行.\im-select.exe确认能输出当前 ID - Linux 用户注意:
fcitx5-remote或ibus engine输出格式和im-select不兼容,VSCode Vim 插件只认后者风格,别硬套 - 配置里写路径要完整:
"/opt/homebrew/bin/im-select"不能简写成"im-select",尤其 macOS M1/M2 用户常见此问题
真正麻烦的从来不是“怎么装”,而是不同层级(界面语言 / 输入法引擎 / 编辑器插件)之间状态不同步。比如改完 locale 发现输入法还卡中文,或 im-select 能切但 Vim 插件不调用——这时候得一层层确认当前生效的是哪一环,而不是全盘重装。











