sublime text 的 where 输入框不支持保存模板,需通过配置文件 findinfiles.sublime-settings 固化搜索条件;该文件需置于 user 包下,内容为 json 格式,定义 where、file_types 等默认值,语法错误或路径错误会导致静默失效。

Where 输入框不支持保存模板,得靠配置文件固化
Sublime 原生没有「保存搜索条件为模板」的功能。每次打开 Ctrl+Shift+F 都要重输 Where 内容,比如 src/, -node_modules/, -dist/,不是忘了就是写错斜杠。它不记历史、不存会话,纯靠手动——但你可以用配置文件绕过这个限制。
新建 FindInFiles.sublime-settings 文件并填入常用路径
这个文件是 Sublime 唯一认可的全局搜索预设入口,位置必须严格对应:
- macOS:
~/Library/Application Support/Sublime Text 3/Packages/User/FindInFiles.sublime-settings - Windows:
%APPDATA%\Sublime Text 3\Packages\User\FindInFiles.sublime-settings - Linux:
~/.config/sublime-text-3/Packages/User/FindInFiles.sublime-settings
内容示例(JSON 格式,注意逗号和引号):
{
"where": "src/, -node_modules/, -dist/, -build/",
"file_types": ["*.js", "*.ts", "*.jsx", "*.tsx"],
"case_sensitive": false,
"whole_word": true,
"regex": false
}
保存后,下次打开 Ctrl+Shift+F 面板,Where、文件类型、大小写等字段会自动填充为该配置。但注意:Find All 和 Replace All in Files 操作仍需手动触发,配置只管初始值。
别混淆 Settings 和 FindInFiles 配置,后者只影响搜索面板
Preferences → Settings – User 里改的 folder_exclude_patterns 是全局过滤,会影响侧边栏显示、索引范围、甚至 Ctrl+P 文件搜索;而 FindInFiles.sublime-settings 只控制 Ctrl+Shift+F 面板的默认输入项,两者叠加生效。
- 如果你在
Settings – User中写了"folder_exclude_patterns": ["node_modules"],又在FindInFiles.sublime-settings里写了"where": "., -node_modules/",那node_modules实际被排除两次,但效果一样 - 想临时启用某类文件?直接在面板里改
Where,它会覆盖配置文件里的值,不会写回文件 - 配置文件不支持变量或通配符(如
$PROJECT或*.+(js|ts)),所有路径必须写死
修改后不生效?检查文件名和 JSON 语法
这是最常卡住的地方:文件名错一个字符、多一个空格、少一个逗号,Sublime 就静默忽略整个文件。
- 文件名必须是
FindInFiles.sublime-settings,不能是find_in_files.sublime-settings或FindInFiles.json - JSON 必须合法:字符串用双引号,最后一行不能有逗号,布尔值不用引号(
true不是"true") - 改完保存后,重启 Sublime 才能确保加载(部分版本热加载失败)
- 不确定是否生效?打开
Ctrl+Shift+F后立刻看Where框内容,不是看右下角状态栏
真正麻烦的不是写配置,而是第一次写错却没报错——Sublime 完全不提示,只当它不存在。











