修复方法是:先验证扩展目录权限,linux/macos用sudo chown -r $user:$user ~/.vscode/extensions/,windows在powershell执行icacls "$env:userprofile\.vscode\extensions" /reset /t;再清空%temp%、关闭干扰软件,改用命令面板安装;确保locale.json路径正确、utf-8无bom、内容为{"locale":"zh-cn"};最后检查.vscode包engines版本匹配并彻底退出vscode进程。

code --install-extension 报“permission denied”怎么修
这不是 VSCode 的 bug,而是系统拒绝向扩展目录写入文件。Windows 上常见于 %USERPROFILE%\.vscode\extensions\ 所有者错乱(比如曾用 sudo code 或管理员运行过),Linux/macOS 则多因 ~/.vscode/extensions/ 权限被设为 root 所有。
验证方式很简单:
Linux/macOS 运行 ls -ld ~/.vscode/extensions/,若显示 root 而非当前用户名,就是它;
Windows 可在资源管理器右键该文件夹 → “属性” → “安全” → 看“组或用户名”里是否有你的账户且带“写入”权限。
- 修复命令(Linux/macOS):
sudo chown -R $USER:$USER ~/.vscode/extensions/ - Windows 不要用资源管理器“获取所有权”,而应进 PowerShell(非管理员)执行:
icacls "$env:USERPROFILE\.vscode\extensions" /reset /T - 别碰
%APPDATA%\Code或%LOCALAPPDATA%\Programs\Microsoft VS Code——那是主程序目录,改它可能触发签名失效
双击 .vsix 文件提示“无法写入”是路径问题
VSCode 自 1.70 起禁用双击安装机制,但更隐蔽的问题是:它会尝试把文件解压到 %TEMP% 再搬运,而某些杀软或 OneDrive 会锁住临时目录,导致静默失败——错误不报,只卡住。
- 手动清空
%TEMP%(Win+R 输入%TEMP%回车,全选删除) - 关掉 OneDrive、腾讯电脑管家、火绒等可能 hook 文件操作的软件
- 改用命令面板安装:按
Ctrl+Shift+P→ 输入Extensions: Install from VSIX→ 选中 .vsix 文件
locale.json 写入失败不是没权限,是编码或路径错
即使扩展装上了,语言也不生效,大概率是 locale.json 没写对位置或格式。它必须放在用户级配置路径,且内容必须是 UTF-8 无 BOM 的严格一行。
- 正确路径(三选一):
Windows:%APPDATA%\Code\User\locale.json
macOS:$HOME/Library/Application Support/Code/User/locale.json
Linux:~/.config/Code/User/locale.json - 内容只能是:
{"locale":"zh-cn"}(注意:小写、连字符、无空格、无注释、无 BOM) - 别用记事本直接保存——它默认加 BOM。用 VSCode 自身打开该文件,右下角点编码 → “Save with Encoding” → 选
UTF-8(不是UTF-8 with BOM)
离线安装后仍英文?检查后台进程和版本硬匹配
VSCode 启动时会加载已启用的语言包,但如果旧进程没退出,新配置就不起作用;更常见的是 .vsix 包的 engines.vscode 字段和你本地版本不匹配,导致插件被跳过加载。
- 彻底退出所有 VSCode 进程:
Windows:任务管理器里杀掉所有Code.exe和Code Helper (Renderer).exe
macOS/Linux:pkill -f "Code Helper"+pkill -f Electron - 解压 .vsix(用 7-Zip 或
tar -xzf),打开extension/package.json,确认"engines": {"vscode": "^1.90.0"}中的版本号能覆盖你本地的code --version输出(如 1.95.2 → 主版本 1.95 必须 ≥ 1.90) - 不匹配就手动改
^1.90.0为^1.95.0,再用 7-Zip 重新打包成 ZIP,后缀改为.vsix











