code命令未注册进PATH导致--install-extension失败;应先运行which code确认,无输出则需通过Ctrl+Shift+P执行“Shell Command: Install 'code' command in PATH”并重启终端。

code --install-extension 报 command not found
这不是插件问题,是 VSCode 的 CLI 工具根本没注册进系统 PATH。官方 .deb/.rpm 或 macOS ZIP 版默认不自动配置 code 命令。
先运行 which code:无输出就说明命令不可见。
- 临时解决:用绝对路径,如
/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 后看不到
拖拽 .vsix 后卡在 “Installing…” 或无反应
图形界面安装依赖后台网络请求做签名验证和解压调度,断网时它不提示错误,只挂起或丢弃操作。
- 确认 VSCode 窗口有焦点:任务栏图标是否高亮?远程桌面(RDP/TeamViewer)下拖放常被拦截
- 检查文件是否真为 .vsix:用
unzip -l plugin.vsix看顶层是否有extension/package.json;若显示一堆零散文件,说明已被解压或损坏 - 路径含中文或空格?Windows 下必须用英文双引号包裹,如
"C:\my ext\ms-python.python-2024.6.0.vsix" - 虚拟机共享文件夹(如
/mnt/hgfs)拖入常失败:先复制到本地路径(如~/Downloads/),再拖
报错 “Extension is corrupt” 或 “not compatible with the current version of VS Code”
这不是文件损坏,而是 VSCode 在加载阶段拒绝解析 package.json 或校验失败。最常被忽略的是版本声明不匹配。
- 运行
code --version,取前两位(如1.92.2→1.92) - 解压 .vsix:
unzip -p plugin.vsix extension/package.json | grep engines,看"vscode": "^1.85.0"这类字段 - 本地版本必须 ≥ 插件要求的最低版本;差一个小版本(如
1.92vs^1.93.0)就会静默拒绝 - ARM 架构机器(如 M-series Mac)不能装 x64 构建的 .vsix:Help → About 里看架构,再去 Marketplace 的
versionhistory页面手动选对应平台旧版下载 - 别手动改
package.json并重打包:绕过签名后插件可能被禁用,或功能异常
安装成功但插件不生效
离线环境里,很多插件(尤其是带语言服务器的)需要额外部署二进制组件,而 VSCode 默认会在联网时自动下载——断网就卡住,且不报错。
- Python 插件:需确保
python.defaultInterpreterPath指向真实venv/bin/python(macOS/Linux)或venv\Scripts\python.exe(Windows) - C/C++ 插件:“未找到定义”大概率是
cpptools-srv组件没下下来;得从微软离线包页面手动下载对应平台的cpptools-win32.vsix等,并用code --install-extension安装 - Java Pack 类扩展:它只是个清单,必须手动凑齐
redhat.java、vscjava.vscode-java-debug等子扩展,按依赖顺序逐个安装 - 装完务必彻底退出 VSCode:右下角托盘图标也要右键退出,否则缓存不刷新,新插件不会激活
离线安装最麻烦的从来不是“装不上”,而是“装上了却不动”。关键点不在文件本身,而在 VSCode 对签名、引擎版本、LSP 二进制、进程状态这四层隐式校验的响应方式——它不报错,只沉默跳过。


















