atom全局搜索卡顿因未过滤node_modules等目录,需同时配置ignorednames(加node_modules、dist/、*.log)和勾选exclude vcs ignored paths并重启;纯文件夹项目依赖.atomignore;ctrl+shift+f搜索需清空file/directory pattern;正则跨行用[\s\s]而非/s标志。

全局搜索总卡在 node_modules 里?必须配 ignoredNames + excludeVcsIgnoredPaths
Atom 默认不自动过滤 node_modules、dist、.log 这类目录,搜出来几百个无关结果是常态。不是它慢,是它根本没被拦住。
两个配置必须同时生效:
-
Settings > Core > Ignored Names里手动加:node_modules、dist/、*.log(注意目录名后带斜杠) -
Settings > Core > Exclude VCS Ignored Paths必须勾选——否则.gitignore规则不触发 - 改完必须重启 Atom,热重载不生效
- 纯文件夹项目(无
.git目录)时,.gitignore完全失效,只能靠ignoredNames或更可靠的.atomignore
Ctrl+Shift+F 搜不到文件?检查 File/directory pattern 是否被误填
这个输入框是隐形开关:留空才全项目扫描;一旦填了内容,就变成硬性 glob 过滤器,其他文件直接消失。
- 常见误操作:
src/**/*.ts导致api.py、index.js全部不出现 -
./src≠ 递归搜 src 目录,Atom 把./当成本层限定,不会进src/utils - 想只搜 JS/TS:
src/**/*.@(js|ts)需插件支持(如advanced-open-file),原生只认**和* - 批量替换前务必确认右上角
Only in open files没被意外勾上
正则跨行匹配失败?别信 s 标志,用 [\s\S] 才行
Atom 用 JS 正则引擎,. 默认不匹配换行符,^/$ 只锚定单行。内联标志如 /foo.*bar/s 完全无效。
- 跨行捕获必须显式写:
console\.log\([\s\S]*?\) - 贪婪匹配如
/\*[\s\S]*\*/容易回溯爆炸,优先用非贪婪:/\*[\s\S]*?\*/ - 捕获组引用写
$1,写\1会被当字面量输出 - 右下角
.*图标必须点亮,否则所有正则都按纯文本处理
vim-mode-plus 用户:正则搜索要加 \v,范围替换得用 % 或 '
原生 Atom 搜索不支持 Vim 风格命令,但 atom-vim-mode-plus 插件补上了关键能力。
- 启用正则:搜索时开头加
\v,例如/\vfunction\s+\w+\(匹配函数定义 - 全文替换:
:%s/pattern/replacement/g - 只换选区:
:'s/pattern/replacement/gc(c表示逐个确认) - 搜索历史存在
lib/search-history-manager.js,可快速复用旧关键词 - 注意:
gc替换会弹确认框,但不会高亮所有匹配项——得先用/搜一遍再执行
.gitignore 和 ignoredNames 是两套独立过滤系统,漏掉任意一个,node_modules 就会混进来;File/directory pattern 看似是可选项,实则是硬过滤开关。这些细节不踩一次坑很难记住。











