rg进程cpu飙高主因是默认扫描node_modules、.git等目录,须在项目.vscode/settings.json中配置search.exclude(如"/node_modules/": true)并关闭search.followsymlinks,修改后必须重启窗口才生效。

VSCode 搜索文件时 CPU 飙高,基本就是 rg(ripgrep)进程在疯扫目录——不是搜索功能本身有问题,而是它默认把 node_modules、.git、符号链接甚至整个用户主目录都纳入扫描范围。
为什么 rg 进程会吃满 CPU
VSCode 内置的搜索(Ctrl+Shift+F)底层调用的是 rg。一旦工作区过大或路径配置不当,rg 就会触发海量文件遍历:
-
rg --files --hidden --follow这类命令在/Users/xxx或含node_modules的根目录下执行,轻松触发数万次 I/O 和正则匹配 - 如果
search.followSymlinks为true(默认),且项目里有循环软链,rg会无限递归 -
search.useRipgrep默认开启,但没配search.exclude时,rg不会自动跳过构建产物或日志
必须配 search.exclude,不是 files.exclude
files.exclude 只影响资源管理器显示,对搜索完全无效;真正控制 rg 扫描范围的是 search.exclude:
- 必须写在项目根目录的
.vscode/settings.json中(用户级设置不生效) - 规则是 glob 模式,例如:
"**/node_modules/**": true、"**/dist/**": true、"**/*.log": true - 注意:写成
"node_modules": true或"*/node_modules/*"全无效,必须带双星号前缀和后缀 - 若搜索仍卡,检查是否漏了
"**/.git/**": true——Git 目录下有大量小文件,极易拖垮rg
search.followSymlinks 默认开启很危险
VSCode 2026 年起默认启用符号链接跟随,但多数项目不需要。尤其当 node_modules 被软链到全局缓存,或工作区包含跨盘链接时,rg 会反复跳转、重复扫描:
- 在
.vscode/settings.json中显式关闭:"search.followSymlinks": false - 关闭后,搜索不会进入软链指向的目录,CPU 瞬间回落
- 如确需搜索链接目标,手动在目标路径下打开新窗口,而非依赖自动跟随
别让 VSCode 打开整个用户目录
很多高 CPU 场景根本不是项目问题,而是你直接打开了 /home/xxx 或 C:\Users\xxx —— VSCode 会尝试索引全部子目录,rg 命令行里能看到 --files --hidden --follow 扫了 20000+ 文件:
- 永远只打开具体项目子目录,比如
~/projects/my-app,而不是~/projects - 如果已打开大目录,关掉窗口后,在终端用
code ./my-app重新打开 - 检查
code --status输出里的Folder行,确认路径是否合理
最常被忽略的一点:改完 search.exclude 或 search.followSymlinks 后,不重启 VSCode 窗口,配置不会生效——rg 进程是启动时加载规则的,热重载不管用。











