Atom模糊查找器不支持正则表达式,设计基于人眼直觉匹配 核心事实是:Atom编辑器自带的fuzzy-finder插件不支持使用正则表达式搜索文件名。 如果您输入类似 ^api.*\.ts$ 的模式,期望精准匹配,结果将无法实现。其底层逻辑基于字符串分词和权重计算,而非正则引擎的规则解析。 fuzz

核心事实是:Atom编辑器自带的fuzzy-finder插件不支持使用正则表达式搜索文件名。 如果您输入类似 ^api.*\.ts$ 的模式,期望精准匹配,结果将无法实现。其底层逻辑基于字符串分词和权重计算,而非正则引擎的规则解析。
长期稳定更新的攒劲资源: >>>点此立即查看<<<
这源于其设计初衷:模拟“人眼的直觉匹配”,追求模糊和容错。例如,输入 usrctrl 可以匹配到 user-controller.js。其原理是将输入和文件名按分隔符(如短横线、下划线、点号)切分为“词块”,并计算子串的匹配度与连续性,而非解析正则语法。
因此:
.*、^、$,均被视为普通文本进行匹配。ApiH)会提升类似 api-handler.ts 文件的权重。apih 可能比 apihandler 更容易匹配 api-handler.ts,因其更贴近分词结构。简而言之,它更倾向于作为智能辅助工具,而非严格的规则引擎。
若需按规则精确筛选文件名,可使用Atom的「Find in Project」功能。
通过快捷键 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)打开面板,在底部 File/Directory pattern 输入框中,可使用Unix shell风格的通配符(非正则表达式)指定文件范围:
**/*.ts。!**/*.test.ts。src/api 目录下包含 service 的TS文件:模式为 src/api/**/*service*.ts。需注意:排除符号 ! 必须顶格书写,前方不能有空格;** 表示匹配任意层级子目录。此字段不支持 \d+ 或 [a-z] 等正则字符集,但 (匹配单个字符)、*(匹配零个或多个字符)及 **(跨目录匹配)已覆盖多数场景。
即使规则正确,有时也可能无法搜索到目标文件。一个常见原因是Atom默认遵循项目 .gitignore 文件的规则。若 dist/、build/ 等目录被忽略,即使其中包含匹配的 .ts 文件,默认也不会被搜索。
解决方法有两种:
设置 → Core → Exclude VCS Ignored Paths,关闭此选项。File/Directory pattern 中手动将这些目录加入白名单,例如 dist/**/*.ts(需确保未被上层 ! 规则排除)。另需注意:在Atom多项目工作区中,File/Directory pattern 默认仅对当前激活的项目文件夹生效。除非勾选面板右上角齿轮菜单中的 Search in all project folders 选项。
若需要进行复杂正则表达式级别的文件名筛选,更高效的方法是使用终端命令,例如 rg --files | grep -E 'api.*service.*\.ts'。Atom的fuzzy-finder本质是为快速文件跳转优化的辅助工具,而非全功能文件系统查询器。明确其定位,方能合理使用。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述