code --install-extension 安装 vsix 文件必须用绝对路径,不支持相对路径或 URL;需确保文件来自官方源、版本匹配,并安装后通过 GUI 执行 Configure Display Language 重启生效。

code --install-extension 安装 vsix 文件必须用完整路径
离线或受限网络环境下,code --install-extension 是唯一可靠的命令行安装方式,但它**不接受 URL 或相对路径**,只认本地磁盘上的绝对路径。比如你下载了 vscode-language-pack-zh-hans.vsix,不能直接运行 code --install-extension vscode-language-pack-zh-hans.vsix(当前目录下),而必须写成:
code --install-extension /home/user/Downloads/vscode-language-pack-zh-hans.vsix # Linux/macOS code --install-extension C:\Users\Name\Downloads\vscode-language-pack-zh-hans.vsix # Windows
否则会报错:Extension 'vscode-language-pack-zh-hans.vsix' not found.
vsix 文件必须来自微软官方发布页
第三方网站打包的 .vsix 文件常见问题:签名无效、ID 不匹配(如变成 xxx.chinese-lang)、缺少 contributes.localizations 声明——这些都会导致插件装上但 Configure Display Language 命令不可见或选不到 zh-cn。
- 正确来源只有两个:
• GitHub Release 页面:https://github.com/microsoft/vscode-loc/releases/tag/1.92.0(版本号查最新 release)
• 微软 Marketplace API 直链:https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-ceintl/vsextensions/vscode-language-pack-zh-hans/1.92.0/vspackage - 文件名必须是
vscode-language-pack-zh-hans-1.92.0.vsix这类带版本号的格式,不是zh-hans.vsix或chinese.vsix - 安装后检查扩展列表:
code --list-extensions | grep ms-ceintl,应输出ms-ceintl.vscode-language-pack-zh-hans
安装完必须执行 Configure Display Language 命令
命令行装完只是把插件放进扩展目录,VS Code 启动时仍默认用英文。不运行 Configure Display Language,界面不会变中文——哪怕 locale.json 已存在、哪怕你手动改过它。
- 终端中无法直接触发该命令,必须启动 VS Code GUI 后操作:
code启动后按Ctrl+Shift+P,输入并执行Configure Display Language - 选项里只认
zh-cn(小写、短横线),zh_CN、zh-hans、Chinese都无效 - 点“Restart”而不是“Reload Window”,否则后台 Electron 进程不释放,新 locale 不加载
Windows 下 code 命令未识别?先配置 PATH
如果终端报 'code' is not recognized,说明 VS Code 的 CLI 工具没加入系统环境变量。这不是语言包问题,而是安装路径未注册:
- Windows:重装 VS Code 时勾选
Add to PATH;或手动把C:\Users\<user>\AppData\Local\Programs\Microsoft VS Code\bin</user>加进系统 PATH - macOS:运行
shell command 'Install 'code' command in PATH'(从 Command Palette 调出) - Linux:安装包通常自带,若用 .tar.gz 手动解压,需软链
code到/usr/local/bin
最易被忽略的是:即使 code --install-extension 成功返回,也绝不等于中文界面就绪。真正生效的临界点永远在 GUI 中那一次 Configure Display Language + 全进程重启——跳过这步,所有命令行操作都只是白忙。


















