必须先通过File→Open Folder…打开项目文件夹,否则Ctrl+Shift+F搜索范围无效;Where框需正确填写路径如./src,*.js,排除用-/node_modules/;跨文件替换前须确认范围并备份。

必须先打开文件夹,否则搜索范围无效
Sublime 不会“自动”按你当前编辑的文件所在目录去搜——它只认 Where 输入框里写的路径。如果你只是双击打开了一个 main.py,没通过 File → Open Folder… 加载整个工程,那么 Ctrl+Shift+F(Win/Linux)或 Cmd+Shift+F(macOS)面板里的 Where 很可能为空、为 .(当前工作目录,不一定是项目根),甚至残留上一次的路径。
- 正确做法:先点菜单
File → Open Folder…,选中你的工程根目录(比如/Users/me/my-project) - 验证是否成功:看左侧边栏是否出现完整文件树,且状态栏显示类似
my-project/的路径前缀 - 错误现象:搜不到
src/utils.js里的内容,但明明它就在同个项目里——大概率是因为没真正“打开项目”,只是打开了单个文件
Where 框写法决定搜索边界,通配符和排除语法很关键
Where 不是 shell 路径,也不是 glob 嵌套表达式,它用的是 Sublime 自己的一套轻量规则:逗号分隔、路径与模式共存、斜杠位置决定语义。
- 搜整个工程:
.或留空(前提是已打开文件夹) - 只搜
src下所有 JS 和 TS 文件:./src, *.js, *.ts - 排除
node_modules和日志文件:., -/node_modules/, -*.log(注意-/node_modules/的前后斜杠,少一个就会误杀含node_modules字样的文件名) - 错误写法:
./src/**/*.py(Sublime 不支持**)、-node_modules(会匹配my_node_modules_config.js)、*.JS(若勾了Match case就完全不匹配小写后缀)
想跨文件批量替换?先锁定范围再操作
全局替换没有预览确认页,Replace All in Files 是“执行即生效”,无法一键撤销所有文件的修改。
- 务必先用
Find确认结果数量和上下文,左侧结果面板会列出每个匹配所在的文件名:行号 - 替换前在
Where明确限定范围,例如:./app, *.vue,避免误触node_modules或配置文件 - 对重要项目,替换前运行
git stash或确保工作区干净;Sublime 不集成 Git 提示,这步得自己来 - 若发现搜索漏掉某些文件(比如
.env或README.md),检查Preferences → Settings中的file_exclude_patterns和binary_file_patterns是否误配
高频搜索场景:快速定位函数定义或 HTML ID
这不是 Ctrl+Shift+F 的事,而是 Ctrl+P(或 Cmd+P)的专长——它不搜内容,只模糊匹配文件名和符号,响应极快。
- 搜文件:
Ctrl+P后输入header,可匹配Header.vue、index.html里的header片段 - 跳转函数:
Ctrl+P后输@useEffect,直接跳到当前文件中useEffect定义处(需符号索引启用,默认开启) - 定位 HTML 元素:
Ctrl+P后输#login,跳转到当前 HTML 文件中id="login"的元素 - 注意:
Ctrl+P只作用于当前已打开的项目,且不支持跨文件搜内容——别把它和Ctrl+Shift+F混用
Where 里压根没填对东西——或者根本没意识到它需要你主动加载文件夹。










