远程开发必须禁用本地重度插件,因其在本地运行会拖慢响应、增加网络开销并干扰远程语言服务;需在远程工作区中执行Extensions: Disable Extension in This Workspace,并配置.vscode/settings.json中的extensions.disabled、ignoreRecommendations等项,再通过Developer: Show Running Extensions和Output日志验证生效。

远程开发时 VSCode 本地插件照常加载,会拖慢连接响应、增加网络传输开销、甚至干扰远程语言服务——禁用本地重度插件不是可选项,是必须动作。
为什么远程开发还要管本地插件?
VSCode 的远程开发(SSH / Containers / WSL)本质是“本地 UI + 远程内核”,但插件分三类:
-
纯本地插件:比如
GitLens、Live Server、Color Highlight,它们在本地进程运行,监听本地文件系统或渲染本地 UI,对远程无益却持续吃 CPU 和内存 -
双端插件:如
ESLint、Prettier,若未配置为 remote-only,会在本地启动语言服务,与远程服务抢资源、报错冲突 -
远程插件:如
ms-python.python,默认只在远程激活,但若本地也启用了,它可能在本地预占 Python 解释器或日志通道
典型现象:Code Helper (Renderer) 进程 CPU 占用飙高、终端卡顿、保存延迟 >1s、状态栏右下角频繁闪烁 “Activating Extensions…”
如何精准禁用本地重度插件?
别碰全局设置,直接锁定工作区上下文。关键操作顺序如下:
- 打开远程工作区后,按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),运行Extensions: Disable Extension in This Workspace - 搜索并依次禁用:
gitlens.gitlens、esbenp.prettier-vscode、dbaeumer.vscode-eslint、formulahendry.auto-rename-tag、bradlc.vscode-tailwindcss - 禁用后,检查
.vscode/settings.json是否自动写入:"extensions.disabled": ["gitlens.gitlens", "esbenp.prettier-vscode"]—— 若没写,手动补上,避免下次打开失效 - 特别注意:
ms-python.python和ms-vscode.cpptools若当前远程环境不用 Python/C++,务必禁用;否则本地会启动完整语言服务器,且不释放
远程开发专属的 settings.json 配置项
仅在远程工作区生效的硬性配置,能堵住多数后台泄漏:
-
"extensions.ignoreRecommendations": true:关闭所有推荐弹窗,防止误点启用 -
"files.watcherExclude": {"**/node_modules/**": true, "**/.git/**": true}:本地文件监听范围收缩,避免 inotify 句柄耗尽 -
"editor.codeActionsOnSave": {"source.fixAll.eslint": false}:关掉本地 ESLint 自动修复,让修复逻辑完全交由远程服务执行 -
"typescript.preferences.includePackageJsonAutoImports": "off":禁用本地 TS 自动导入提示,远程项目有自己的tsconfig.json和版本
这些配置写进 .vscode/settings.json 后,无需重启窗口,切换标签页或保存任意文件即可生效。
验证是否真禁用成功
靠眼睛看图标灰不灰不行,得查进程和日志:
- 运行
Developer: Show Running Extensions,确认目标插件状态为Inactive,且CPU %和Memory MB列为空或接近 0 - 终端执行
ps aux | grep 'extensionHost',观察是否有gitlens或prettier相关子进程残留 - 打开
Output面板 → 切换到Log (Extension Host),搜索gitlens,应无任何activated或starting日志 - 对比禁用前后
Developer: Startup Performance中的Start Delay总和,下降 >200ms 是有效信号
最隐蔽的坑是:插件被禁用,但 settings.json 里还留着 "eslint.enable": true 这类开关——VSCode 会尝试加载插件来解析该配置,导致“禁用无效”。删干净再验证。


















