vscode卡顿主因是扩展、文件监视和语言服务耗资源;禁用高内存扩展、配置files.watcherexclude排除node_modules等目录、关闭ts/js项目级诊断可显著提速。

VSCode 卡顿不是“变老了”,而是扩展、文件监视和语言服务在后台持续吃资源——关掉几个默认开启的选项,性能立刻回升。
查清楚哪个扩展在偷偷吃内存
很多卡顿根本不是编辑器的问题,是某个扩展在后台常驻并占用大量资源。打开命令面板(Ctrl+Shift+P),输入 Developer: Show Running Extensions,看列表里的“内存占用”和“启动耗时”两列:
- 内存 >300MB 或启动耗时 >100ms 的扩展优先禁用
- 特别注意
Live Server、ESLint(全局启用时)、GitLens、Auto Rename Tag这类高频监听型插件 -
Remote - SSH和Docker类扩展即使没连接,也会预加载代理进程,占着Extension Host内存不放 - 禁用后务必重启 VSCode 窗口,否则变化不生效
排除 node_modules 等目录的文件监视
files.watcherExclude 是最立竿见影的优化项。VSCode 默认用 chokidar 监听整个工作区,遇到 node_modules 这种几万小文件的目录,CPU 会持续飙高,甚至触发 inotify 句柄耗尽,退化为低效轮询。
- 必须在工作区级的
.vscode/settings.json中配置,用户级设置无效 - 至少加上:
"**/node_modules/**": true、"**/.git/**": true、"**/dist/**": true、"**/build/**": true - Python 项目补上:
"**/venv/**": true、"**/__pycache__/**": true、"**/.mypy_cache/**": true - 前端项目补上:
"**/out/**": true、"**/coverage/**": true - 改完后必须关闭并重新打开当前工作区,否则不生效
关掉 TypeScript 和 JavaScript 的自动校验
typescript.tsserver.experimental.enableProjectDiagnostics 和 javascript.validate.enable 是大型项目卡顿元凶。TSServer 会在你没打开任何 .ts 文件时仍扫描整个项目,尤其当 node_modules 没被正确排除时,索引直接卡死。
- 在
settings.json中加:"typescript.tsserver.experimental.enableProjectDiagnostics": false - 如果只写 JS,直接关掉:
"javascript.validate.enable": false - 避免对构建产物做自动导入分析:
"typescript.preferences.autoImportFileExcludePatterns": ["**/dist/**", "**/lib/**"] - 这些设置不影响你手动触发类型检查(比如保存时格式化或按
Ctrl+Space补全),只是停掉后台持续扫描
终端启动慢?别让 shell 拖垮执行速度
所谓“运行代码慢”,90% 是终端启动卡在 shell 初始化阶段,而不是 VSCode 本身。PowerShell、Git Bash 甚至某些 zsh 配置都会在每次新开终端时加载模块、执行 $PROFILE、检查更新,耗时 1–2 秒。
- Windows 用户把
terminal.integrated.defaultProfile.windows改成commandPrompt,不是powershell.exe - macOS/Linux 用户确认
~/.zshrc里没有耗时命令(比如git status、pyenv init) - Python 项目禁用终端自动激活虚拟环境:
python.terminal.launchArgs设为空数组[],python.terminal.executeInFileDir设为false - WSL2 用户绝不要直接打开
\wsl$路径下的项目,必须用Remote - WSL: New Window,确保左下角显示WSL: Ubuntu
真正容易被忽略的是:files.watcherExclude 和 typescript.tsserver.experimental.enableProjectDiagnostics 这两个开关,它们默认开启且影响隐蔽——不主动关,你永远不知道自己在为谁买单。











