Sublime Text全项目搜索JSON文件需在Where字段填*.json并排除-node_modules/等目录,避免漏配或误搜;同时检查file_exclude_patterns是否误删配置文件,开启正则和Whole Word模式确保精准匹配。

Where字段填*.json才能真正限定JSON文件
全局搜索默认扫整个项目,不加限制会混入.js、.py等大量无关结果。想只查package.json、config.json这类配置文件,必须在Find in Files面板的Where输入框里明确写*.json——注意是星号开头、英文点、小写json,不能写成.json或*.JSON。
常见错误包括:
- 留空
Where→ 搜open_files(仅当前已打开的标签页)或退化为慢速全盘扫描 - 写
.json→ 被识别为路径./json/目录,不是通配符 - 写
*.JSON→ Sublime 的 glob 不区分大小写,但部分系统或 Git 仓库可能实际存为小写,导致漏匹配
搜不到package.json?先检查file_exclude_patterns
package.json和tsconfig.json这类文件常被误加进排除列表。打开Preferences → Settings – User,搜索file_exclude_patterns,确认里面没有"package.json"或"*.json"这样的条目。如果存在,临时删掉再试。
另外注意:binary_file_patterns默认不含.json,所以编码问题一般不是主因;但如果右下角状态栏显示编码不是UTF-8,仍建议点开切换一次,避免BOM导致正则错位。
想排除node_modules里的JSON?Where里加-node_modules/
只写*.json会把node_modules/react/package.json也拉进来,结果刷屏且无意义。正确做法是在Where框中组合填写:*.json, -node_modules/, -dist/, -build/。
关键点:
- 逗号分隔,不要用空格或换行
- 排除路径统一用
/结尾,Windows下也一样(Sublime内部统一处理) -
-node_modules/比!node_modules更可靠,前者是Find in Files原生语法,后者在某些版本中不生效 - 不支持
*.json -node_modules/**/*.json这种嵌套写法,必须用前缀排除
用正则搜JSON字段值时,记得转义点号和引号
比如搜"timeout": 5000,直接输"timeout": 5000可能命中注释或字符串字面量。开启.*(正则模式)后,更准的写法是:"timeout"\s*:\s*5000。
但要注意:
- 双引号不用转义(JSON标准要求键名必须用双引号)
- 点号
.在正则中是通配符,如果搜api.v1.json,得写成api\.v1\.json - 如果启用了
Whole Word(\b边界),"timeout"会被当作文本块匹配,比纯正则更安全
最易被忽略的是:每次打开Find in Files面板,.*和Aa开关都是默认关闭的——搜之前务必手动点开,否则正则表达式当普通字符串处理,怎么写都找不到。


















