find in files 的 where 输入框是唯一实时控制搜索路径的地方,正确格式为:. , -/node_modules/ , -/dist/;项目级排除需配置 .sublime-project 中 folders 内的 folder_exclude_patterns。

Find in Files 的 Where 输入框才是实际生效的排除入口
想让 Ctrl+Shift+F(或 Cmd+Shift+F)跳过 node_modules、dist 这类目录,别去翻用户设置或语法高亮配置——Where 输入框是唯一实时控制本次搜索路径的地方。常见错误写法:-node_modules、-/node_modules、.,-/dist/,全部无效。
必须严格按格式:
-
.表示当前项目根目录,必须写在最前 - 每个排除项以
-开头,路径以/结尾:-/node_modules/✅ - 多个规则用英文逗号分隔,且逗号后必须跟一个空格:
., -/dist/, -*/__pycache__/✅ -
-/node_modules/只排除根目录下的;要匹配所有层级(如packages/foo/node_modules/),得写-*/node_modules/
folder_exclude_patterns 必须写进 .sublime-project 才影响搜索
全局设置里加 folder_exclude_patterns 对 Find in Files 完全无效,它只影响侧边栏显示和 Ctrl+P 的索引范围。真正想每次打开项目都自动跳过某些目录,就得把规则写进项目配置文件 .sublime-project。
关键点:
- 必须有
"folders"数组,哪怕只包含一个目录 -
"folder_exclude_patterns"必须放在"folders"每个对象内部,不能平级写在外层 - 路径是相对于
"path"字段的,不是相对于.sublime-project文件本身。比如"path": "src",那要排除根目录的node_modules,就得写"../node_modules" - 值是字符串数组,只写文件夹名:
"node_modules"✅,"node_modules/"或"**/node_modules"❌(Sublime 不支持双星号)
正确示例:
{
"folders": [
{
"path": ".",
"folder_exclude_patterns": ["node_modules", ".git", "dist", ".next"]
}
]
}
Ctrl+P + @ 是跨文件跳转最稳的原生方式
Ctrl+P(或 Cmd+P)输入 @my_function,触发的是项目级符号搜索,不依赖插件,但依赖后台索引是否就位。它比 Ctrl+R 更可靠,因为后者只查当前文件、且需保存+正确语言模式。
使用前提:
- 必须通过
Project → Add Folder to Project…打开整个目录,单文件模式下基本无效 - 首次添加后等右下角 “Indexing…” 消失,否则结果为空或漏匹配
- 输入格式必须是
@my_function,不能是my_function@或my_function() -
utils.py@parse_config可精准打开指定文件并跳转到该符号
如果搜不到,先检查 folder_exclude_patterns 是否误把源码目录也排除了(比如写了 "src"),再按 Ctrl+Shift+P 输入 Refresh Folders 强制重建索引。
跳转到行、符号、关键字的组合技要分清场景
Ctrl+G(或 Cmd+G)跳行号最直接,但只作用于当前文件;Ctrl+R(或 Cmd+R)查当前文件符号,右下角语言模式必须设对,且内容得先保存;Ctrl+P 后接 @、#、: 才是项目级定位的关键。
典型组合:
-
main.js:25→ 跳到main.js第 25 行 -
@init→ 当前文件中跳转到init符号 -
util@helper→ 在含util的文件名中查找helper符号 -
#fetchUser→ 搜索项目中含fetchUser的所有文本位置(非符号)
这些操作都依赖项目已正确定义结构——拖拽文件夹进窗口不会建立项目上下文,必须用 Project → Add Folder to Project… 显式添加,否则所有跳转都局限在已打开的标签页里。











