atom全局搜索混入node_modules和dist,因默认不自动过滤,需同时开启core.excludevcsignoredpaths并配置core.ignorednames,且修改后必须重启;file/directory pattern留空才全项目扫描,.atomignore是免重启、优先级最高的过滤方案。

为什么全局搜索总扫到 node_modules 和 dist?
Atom 默认不自动过滤这些目录,哪怕你项目里有 .gitignore,也得手动开两个开关才生效。漏掉任一,node_modules、dist、.log 就会混进搜索结果——不是 Atom 慢,是它根本没跳过。
-
core.excludeVcsIgnoredPaths必须为true(Settings > Core > Exclude VCS Ignored Paths 勾选):否则.gitignore规则完全不触发 -
core.ignoredNames里要显式加node_modules、dist、*.log(注意dist不带斜杠,dist/才表示目录) - 改完必须重启 Atom,热重载不生效
File/directory pattern 怎么填才真正全项目扫描?
这个输入框是隐形过滤器,留空 ≠ 全量扫描,而是“按当前忽略规则扫描”;一旦填了内容,就变成硬性 glob 过滤,其他文件直接消失。
- 想搜整个项目:清空
File/directory pattern,连空格都不能有 - 想只搜
src下的 JS/TS:src/**/*.js或src/**/*.ts(原生不支持@(js|ts),需插件) -
./src≠src/**:Atom 把./当成本层限定,不会递归子目录 - 误输
!node_modules可能失效:ripgrep 对负向 glob 支持有限,不如靠ignoredNames+excludeVcsIgnoredPaths更稳
Tree View 里怎么让 .DS_Store、.log 真正隐藏?
忽略列表和树视图显示是两套逻辑,core.ignoredNames 只标记“忽略”,不等于“隐藏”。Tree View 默认不响应这个设置。
- Settings > Packages >
tree-view> 勾选Hide Ignored Names -
core.ignoredNames中填.DS_Store有效,但*.log无效——Atom 的忽略名只匹配文件/文件夹**精确名称**,不支持通配符 - 想过滤
error.log这类文件:得靠.gitignore+tree-view的Hide VCS Ignored Files开关 - 改完设置后,按
Ctrl-\(Windows/Linux)或Cmd-\(macOS)可快速重载树视图,不用重启
最可靠、免重启的过滤方式是什么?
.atomignore 是唯一无需重启、优先级最高、且支持路径模式的方案。它不依赖 Git、不看 ignoredNames,Atom 启动时就加载。
- 在项目根目录新建
.atomignore文件,内容如:
node_modules/ dist/ *.log *.tmp
/ 表示目录(node_modules/ 有效,node_modules 可能匹配同名文件).gitignore 更早生效,也比 core.ignoredNames 更灵活——比如 **/*.log 在这里能用,在设置页里不能.atomignore 最早介入,ignoredNames 次之,.gitignore 最后——但只有前两者都开了,.gitignore 才有机会起作用。











