Notepad++的“在文件中查找”不支持排除语法,仅能通过文件过滤器(如.js;.ts)显式指定后缀,配合精确路径和取消勾选“包括子文件夹”来规避node_modules等目录。

Notepad++ 没有“排除文件”语法,只能显式列出要包含的文件类型
Notepad++ 的「在文件中查找」(Ctrl+Shift+F)根本不支持 !*.log 或 -node_modules 这类排除写法。所谓“排除”,实际是靠「文件过滤器」字段只填你真正关心的后缀,让其他文件天然不参与扫描。
常见错误是留空过滤器,结果扫进 .git/、node_modules/、build/ 里的成千上万个文件,搜索变慢、结果被淹没,甚至触发 Windows 权限弹窗卡死。
-
文件过滤器必须用英文分号;分隔,比如*.js;*.ts;*.jsx—— 写成*.js, *.ts或*.js *.ts会被整个忽略 - 大小写不敏感:
*.JS和*.js效果一样;但通配符只支持*和?,不支持**递归匹配子目录(那是 shell 的事) - 想跳过某个子目录?不能靠过滤器,得手动取消勾选「包括子文件夹」,或把路径设为具体层级(如只填
C:\proj\src而不填C:\proj) - 路径含中文或空格时,
Ctrl+Shift+F通常能处理,但旧版本对 UTF-8 路径解析不稳定,建议用.表示当前打开文件所在目录,更可靠
想跳过特定目录(如 node_modules),得靠路径控制 + 手动取消勾选
「文件过滤器」管的是后缀,不管目录结构。要真正绕开 node_modules 或 dist 这类大目录,唯一办法是:不把根路径设得太宽,且确保「包括子文件夹」没被误勾。
例如你在 C:\myapp 下开发,但只想搜 src/ 和 config/,就别填 C:\myapp 然后指望过滤器拦住 node_modules——它拦不住,因为 node_modules 里也有 .js 文件。
- 正确做法:分别对
C:\myapp\src和C:\myapp\config各执行一次Ctrl+Shift+F - 或者,在「文件浏览器」侧边栏右键点击
src文件夹 → 「在文件中查找…」,自动填充路径,避免手输出错 - 如果必须用顶层路径,且确定要跳过某子目录,就取消勾选「包括子文件夹」,再单独添加其他需要的子路径(Notepad++ 不支持路径黑名单)
- OneDrive、WSL 挂载点、网络驱动器上的路径,需确认 Notepad++ 有读权限;管理员运行不一定解决挂载点访问问题
“查找全部”前务必先预览,否则替换可能误伤
很多人直接点「全部替换」,结果把 node_modules/react/index.js 里的第三方代码也改了——因为过滤器没写对,或路径太宽。
Ctrl+Shift+F 对话框底部状态栏从不报路径错误,只默默显示「0 个匹配项」,容易误判为内容不存在,其实是范围失控。
- 每次修改过滤器或路径后,先点「查找全部」,看右侧「查找结果」面板是否列出预期的文件(比如只有
src/下的几个.ts) - 如果列表里出现了
node_modules/或.git/下的文件,立刻停手,回头检查文件过滤器和路径 - 批量替换请用
Ctrl+Shift+H,但逻辑同上:先「查找全部」确认范围,再「全部替换」 - 正则替换时反向引用用
$1,不是\1;若替换后内容异常,大概率是捕获组没写对或未启用正则模式
搜索结果太多时,别硬扛,优先收紧范围
当「查找结果」面板滚动卡顿、双击无响应、或匹配行超 5000 条,说明范围过大。Notepad++ 的结果面板是实时渲染的,不是数据库,性能瓶颈明显。
这时强行操作不如花 10 秒收紧条件——比反复刷新、重启、怀疑插件更省时间。
- 加更严格的正则:比如搜日志,用
^\[ERROR\].*替代ERROR,锚定行首减少误命中 - 缩小文件类型:把
*.js;*.ts;*.jsx改成*.ts单独跑一次 - 关掉「包括子文件夹」,先确认本层是否就有目标,再逐层向下扫
- 结果里出现大量无关文件?不是 Notepad++ 坏了,是你给它的指令太宽泛——编辑器永远按你写的路径和过滤器执行,不多猜也不少做

















