sublime全局搜索需先打开项目根目录,where框填路径前缀如src/,排除用-,/node_modules/等,注意逗号后空格和斜杠;binary_file_patterns可能静默过滤文件。

Ctrl+Shift+F 前必须先 Open Folder
Sublime 的全局搜索不认“当前文件所在目录”,只认侧边栏里显示的文件夹。如果你双击打开一个 index.js 就按 Ctrl+Shift+F,面板要么灰显,要么只搜已打开的几个标签页——src/、lib/ 这些子文件夹根本不会被扫描。
正确做法是:菜单栏 → File → Open Folder…,选中你的项目根目录(比如 my-app/)。验证是否成功:左侧边栏出现完整树形结构,状态栏显示类似 my-app/ 的路径前缀。
- 用
Add Folder to Project容易叠加路径,导致搜索范围混乱,不推荐 - 没加载项目时,
Where框留空等价于.,但前提是项目上下文存在 - Linux/macOS 下路径大小写敏感,填
Src/不会匹配src/
Where 输入框填 src/ 就够了,别加星号或点斜杠
Where 输入框做的是路径前缀匹配,不是 shell glob,更不是正则。填 src/ 表示“所有相对路径以 src/ 开头的文件”,自动覆盖 src/api/、src/components/Button.vue 等所有层级子目录里的文件。
- ✅ 正确:
src/、tests/、config/*.json - ❌ 错误:
/src/(会被当字面量)、src/*(Windows 不识别反斜杠)、./src/(点斜杠多余) - 想递归匹配特定后缀才用双星号:
src/**/*.ts,但**仅用于层级通配,不支持**/node_modules/这种写法
排除子文件夹只能靠 Where 框里的 -/xxx/
folder_exclude_patterns 配置对 Ctrl+Shift+F 完全无效——它只影响侧边栏显示和 Ctrl+P 的索引范围。真正控制本次搜索是否进某个子文件夹的,只有 Where 框里的排除语法。
- 必须以
.开头,后面跟逗号分隔的排除项:., -/node_modules/, -/dist/ - 每个排除项以
-开头、路径以/结尾:-/node_modules/✅,-node_modules❌,-/node_modules❌ - 根级排除用
-/dist/;全层级匹配用-*/__pycache__/(注意是-*,不是-**) - 逗号后必须跟一个空格,
.,-/dist/会导致整个排除失效
搜不到子文件夹里的内容?先查 binary_file_patterns
即使 Where 框填对了、也排除了干扰目录,搜索仍可能返回空结果或卡顿——问题常出在 binary_file_patterns。这个设置会让 Sublime 把匹配的文件(比如 *.min.js、*.log)当二进制跳过,哪怕它们其实是纯文本。
- 检查用户设置或项目设置里是否有宽泛的 pattern,如
"*.log"或"*.zip" - 临时注释掉相关配置,看搜索是否恢复;确认后再收紧规则
- 它和
folder_exclude_patterns一样,不控制Where范围,但会静默过滤文件内容
Where 框里那个逗号后的空格,以及 -/xxx/ 结尾的斜杠——少一个字符,整个排除就形同虚设。











