应修复扩展目录所有权或权限:linux/macos执行sudo chown -r $user:$user ~/.vscode/extensions/,windows在非管理员powershell中运行icacls "$env:userprofile\.vscode\extensions" /reset /t;同时清空%temp%、关闭杀软,改用命令面板安装vsix。

code --install-extension 报 “permission denied” 怎么修
这不是 VSCode 的 bug,而是系统拒绝向 ~/.vscode/extensions/(Linux/macOS)或 %USERPROFILE%\.vscode\extensions(Windows)写入文件。根本原因是目录所有权错乱:Linux/macOS 下该目录被设为 root 所有,Windows 下则常因曾用管理员运行过 VSCode 导致 ACL 权限丢失。
验证方式很简单:
- 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 起已禁用双击安装机制,但更隐蔽的问题是:它会把 .vsix 解压到 %TEMP%(Windows)或 /tmp(macOS/Linux),再搬运进 extensions 目录。而 OneDrive、火绒、腾讯电脑管家等软件常会 hook 并锁住临时目录,导致静默失败——界面卡住、无报错、extensions 目录空空如也。
解决方法:
- 手动清空
%TEMP%(Win+R 输入%TEMP%回车,全选删除) - 临时关闭 OneDrive、杀软等可能拦截文件操作的软件
- 改用命令面板安装:
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 自身打开该文件,右下角点编码,选“UTF-8”并确保不勾“BOM”。
vsix 安装后 extensions 目录没生成文件夹
这说明 VSCode 根本没完成写入,不是“装失败”,而是校验阶段就静默跳过。常见原因包括:
- VSCode 进程未彻底退出:Windows 上用
code --status查残留进程;macOS/Linux 运行killall code;托盘图标也要右键退出 -
~/.vscode/extensions/被只读挂载(如 WSL 挂载 Windows 分区时),此时应改用--extensions-dir指向可写路径:code --extensions-dir ~/vscode-exts --install-extension python.vsix -
codeCLI 命令未注册进 shell:运行which code(macOS/Linux)或where code(PowerShell),无输出则需在 VSCode 中按Ctrl+Shift+P→Shell Command: Install 'code' command in PATH
离线环境尤其要注意:Python/Vue 等插件装上只是注册入口,首次启用才会下载 pyright-server、volar-server 等 LSP 二进制依赖——这些不会随 vsix 一起打包,必须提前离线部署好,否则功能缺失不是权限问题,是依赖缺失。











