vs code的code命令未注册到path导致“command not found”,需在vscode中执行“shell command: install 'code' command in path”并重启终端;临时可用绝对路径调用,如/usr/bin/code --install-extension。

code --install-extension 报 “command not found” 怎么办
这不是网络问题,是 VSCode 的 CLI 工具根本没注册进 shell 环境。官方安装包(.deb/.rpm/ZIP)默认不自动配置 code 命令,尤其在非交互式终端(如 SSH、WSL 启动的 bash)、macOS zsh 或 Windows PowerShell 中极常见。
先运行 which code(Linux/macOS)或 where code(Windows PowerShell)确认是否可执行;无输出就说明命令不可见。
- 临时解决:用绝对路径调用,比如
/usr/bin/code --install-extension /path/to/plugin.vsix(Linux)或/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code --install-extension /path/to/plugin.vsix(macOS) - 永久修复:在 VSCode 里按
Ctrl+Shift+P→ 输入Shell Command: Install 'code' command in PATH→ 回车执行 → 重启终端 - 别加
sudo:否则插件会装到 root 用户目录,普通用户启动 VSCode 后完全看不到
插件装了但 ~/.vscode/extensions 下没文件夹
VSCode 安装 .vsix 后应在 ~/.vscode/extensions/(Linux/macOS)或 C:\Users\{用户名}\.vscode\extensions\(Windows)生成对应插件目录。没出现,说明安装被静默跳过,不是“失败”,而是压根没写进去。
常见原因包括:
-
.vsix文件被解压重打包过:VSCode 要求原始 ZIP 二进制格式,用资源管理器双击打开再保存会破坏结构;下载后建议用unzip -t plugin.vsix校验完整性 - 自定义了
extensions.installDir但路径不存在或不可写:打开设置搜这个字段,如果存在且指向非标准路径(比如/opt/vscode-ext),先注释掉它,恢复默认行为 - 权限锁死:WSL 挂载的 Windows 分区、NTFS 卷、或 macOS SIP 保护的系统盘都可能拒绝写入;可临时用
--extensions-dir指向用户主目录下的可写子目录,例如code --extensions-dir ~/vscode-ext --install-extension /path/to/plugin.vsix
拖拽 .vsix 后卡在 “Installing…” 或无反应
图形界面依赖后台网络请求做签名验证和解压调度,断网时它不报错,只挂起或丢弃操作——你看到的“正在安装”其实是假状态。
关键检查点:
- 确认 VSCode 窗口有焦点:任务栏图标是否高亮?远程桌面(RDP/TeamViewer)下拖放常被拦截
- 路径含中文或空格:Windows 必须用英文双引号包裹全路径,如
"C:\my ext\ms-python.python-2024.6.0.vsix";Linux/macOS 绝对路径不能含波浪号~或点号.,必须写成/home/user/Downloads/plugin.vsix - 虚拟机共享文件夹(如
/mnt/hgfs)拖入常失败:先复制到本地路径(如~/Downloads/),再拖
报 “Extension is corrupt” 或 “not compatible with the current version of VS Code”
这不是文件损坏,而是 VSCode 在加载阶段校验 package.json 失败。最常被忽略的是 engines.vscode 版本声明不匹配——比如你用的是 1.79.2,而插件要求 "^1.85.0",VSCode 就会静默拒载。
实操步骤:
- 用
unzip -p plugin.vsix package.json | grep engines查看插件声明的最低 VSCode 版本 - 运行
code --version确认本地版本 - 若不兼容,去 Marketplace 的
/versionhistory页面手动选旧版下载,例如https://marketplace.visualstudio.com/items/ms-python.python/versionhistory - 强行改
package.json并重打包虽可行,但绕过签名验证后插件可能被禁用,生产环境慎用
真正难搞的从来不是“装不上”,而是“看起来装上了却没生效”——日志不报错、界面标已安装、但功能全无。这时候得翻 Log (Window) 搜 localization 或插件 ID,或者直接进 ~/.vscode/extensions/ 看文件夹是否存在、里面有没有 extension/package.json。静默失败,永远比报错更耗时间。











