vscode启动卡顿主因是扩展同步激活与文件监视器全盘扫描;需用developer: show running extensions定位长期显示activating…的插件(如gitlens、python、eslint等),配置files.watcherexclude排除node_modules等目录,并设extensions.experimental.affinity为2实现延迟加载。

VSCode启动卡在“Activating Extensions”或冷启动超2秒,基本可以确定是扩展同步激活 + 文件监视器全盘扫描导致的,不是电脑性能问题。
怎么快速定位拖慢启动的扩展
启动后立刻按 Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Windows/Linux),输入并执行 Developer: Show Running Extensions。列表里长期显示 Activating… 的就是真凶。
- 重点关注
gitlens、ms-python.python、esbenp.prettier-vscode、dbaeumer.vscode-eslint、ms-vscode-remote.remote-ssh - 禁用后必须完全退出 VSCode(macOS 用
Cmd+Q,不能只关窗口),否则旧进程残留,效果不显 - 若禁用
ms-vscode-remote.remote-ssh后明显变快,说明阻塞来自远程连接初始化,不是本地配置问题
为什么 files.watcherExclude 配了还不生效
files.watcherExclude 是第一道防线,但写错格式、位置或没重启工作区,设置就等于没加。
- 路径必须带
**/前缀和/**后缀,例如"**/node_modules/**": true;写成"node_modules/": true或"*/node_modules/*"都无效 - 必须写进项目根目录的
.vscode/settings.json,不是用户设置界面(界面加引号会导致解析失败) - 改完后必须完全关闭当前工作区(不只是窗口),再重新用
File → Open Folder打开 - Linux 用户若
cat /proc/sys/fs/inotify/max_user_watches返回值低于524288,需先提升系统限制,否则仍 fallback 到轮询模式
如何让 Python/Prettier 这类扩展真正延迟加载
像 ms-python.python 或 esbenp.prettier-vscode 默认声明 onStartup 或通配符 * 激活事件,一启动就强制初始化语言服务器——但你可能只在打开 .py 文件时才需要它。
- 在用户级
settings.json(不是工作区)中添加:"extensions.experimental.affinity": { "ms-python.python": 2, "esbenp.prettier-vscode": 2 } - 数字
2表示“仅在关联文件打开或命令触发时加载”,不是启动即载入 - 该配置对旧版扩展无效,需确认扩展页的
Activation Events字段是否支持条件触发(2026 年主流扩展已适配) - 别把磁盘根目录或用户主目录当工作区打开——这等于让 VSCode 扫描整个系统
最容易被忽略的是:改完 files.watcherExclude 后没重开工作区,或者把配置误加进了用户设置而非项目级 .vscode/settings.json;还有人以为禁用扩展只要点一下“Disable”就行,其实不退出进程,Extension Host 依然在后台跑着。











