sublime text 的 find in files 面板不自动保存 where 条件,需通过 user/findinfiles.sublime-settings 文件配置 "where" 字段实现预设;folder_exclude_patterns 无效,仅 where 或配置文件生效。

Find in Files 面板不会自动记住 Where 条件,每次打开都是空的
Sublime Text 原生不保存 Where 输入框的内容——哪怕你刚输完 ./src/**/*.ts, -/node_modules/ 关掉面板再呼出,它就清空了。这不是 Bug,是设计:它只记当前会话里 Ctrl+F 的输入词(且仅当插件启用时),Where 是一次性的路径表达式,不落盘、不缓存。
用 FindInFiles.sublime-settings 固化常用 Where 配置
虽然面板本身不记,但你可以把高频组合写进配置文件,让 Sublime 每次打开 find_in_files 面板时自动填入预设值。
- 新建文件,路径为:
~/Library/Application Support/Sublime Text 3/Packages/User/FindInFiles.sublime-settings(macOS)或对应系统的Packages/User/目录下 - 内容写成合法 JSON,例如:
{ "where": "./src/**/*.{js,ts,jsx,tsx}, -/node_modules/, -/dist/, -/build/" } - 保存后重启 Sublime,再按
Ctrl+Shift+F,Where框就会自动带出这串路径 - 注意:
where字段只影响新打开的面板,已打开的面板不会刷新;改完配置需重启才生效
别依赖 folder_exclude_patterns 或项目设置来“替代” Where
有人想把 folder_exclude_patterns 写进 .sublime-project 以为能省去每次输 -/node_modules/,但这是无效的:
-
folder_exclude_patterns只控制索引范围,不影响Find in Files的物理扫描路径 - 即使你在项目设置里写了
"folder_exclude_patterns": ["node_modules"],Where空着时仍会扫到node_modules里的文件 - 真正起效的只有
Where框里的-/node_modules/,或通过FindInFiles.sublime-settings注入它
手动保存/恢复 Where 条件的临时方案
如果你只是偶尔需要复用某组条件,又不想改配置文件,可以:
- 在
Where框输好内容后,全选复制(Ctrl+A→Ctrl+C) - 粘贴到记事本或剪藏工具里打个标签,比如「前端源码-排除构建目录」
- 下次要用时,直接粘贴回
Where框(Ctrl+V),比重输快得多 - 别复制到 Sublime 自己的编辑器里再复制——某些插件会劫持剪贴板或触发意外格式化
最易被忽略的是:这个配置文件名必须严格为 FindInFiles.sublime-settings,少一个字母、多一个空格都不生效;而且它只对 find_in_files 面板起作用,不影响 Ctrl+F 或 Ctrl+H 的行为。











