Sublime Text 全局搜索需先通过 File → Open Folder 加载项目根目录,否则 Ctrl+Shift+F/Cmd+Shift+F 灰显;Where 填 . 搜整个项目,src/ 搜子目录,支持排除(如 -node_modules/)和文件类型限定(如 src/*/.ts);启用 Whole Word 或正则(如 \bfetch\b)可精准匹配;替换后需手动 Save All,且索引完成前搜索可能不全。

Sublime Text 本身不打开文件就能搜内容,但前提是它得“知道文件在哪”——必须通过 File → Open Folder… 加载项目根目录,否则 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)根本不会激活,更别说搜到代码了。
为什么 Ctrl+Shift+F 灰显或搜不到任何东西
这不是快捷键坏了,是 Sublime 没进入项目模式。它只索引你明确告诉它要管的文件夹,不会扫描整个磁盘,也不会从单个打开的文件里猜出项目结构。
- 看左下角状态栏:没显示类似
~/my-project/的路径 → 还没进项目模式 - 看侧边栏:只有标签页、没有树形目录 → 不代表能全局搜
- Mac 用户注意:
Cmd+Shift+F常被系统 Spotlight 占用,需在「系统设置 → 键盘 → 快捷键 → Spotlight」里关掉 - 插件也可能劫持快捷键:打开
Preferences → Key Bindings – User,搜"cmd+shift+f"或"ctrl+shift+f",删掉冲突项
Where 输入框怎么填才真正搜到目标代码
Where 是范围控制器,不是可选项,也不是 shell。填错一个字符,就等于搜了别的地方,甚至可能卡死(比如误扫 node_modules)。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空 - 只搜
src/下所有文件(含子目录):填src/,不用加**或./ - 排除干扰目录:写成
., -node_modules/, -dist/(逗号分隔,斜杠统一用/) - 限定文件类型:如
src/**/*.ts,src/**/*.tsx(支持**,但不支持*.(ts|tsx)) - 搜已打开但未保存的标签页:唯一方式是手动填
open_files
搜函数或 API 调用,纯输名字会误中
Sublime 是纯文本引擎,不解析语法。搜 fetch 会命中注释、字符串、refetch、甚至变量名 isFetching。
- 避免误匹配:点右上角
W(Whole Word)按钮,fetch就不再匹配refetch,但仍能匹配fetch() - 要更严格?启用
.*(正则),写成\bfetch\b - 定位 JS 函数定义:
^\s*function\s+render\b或\bconst\s+render\s*=\s*function,记得转义括号:console\.log\(\) - Python 函数:
^\s*def\s+render\b,Where填*.py
替换后内容丢了?不是 Bug,是设计
Sublime 的 Replace All in Files 把修改存在内存里,不触发文件修改标记,也不自动保存——关掉就清空,且无任何提示。
- 替换前务必先点
Find All,确认结果面板列出了全部目标条目 - 替换后必须手动执行
File → Save All,或快捷键:Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K → Cmd+B) -
Ctrl+S只保存当前激活标签页,对批量替换完全无效
最常被忽略的其实是索引延迟:刚添加新文件夹或新建文件后,右下角显示 Indexing… 时,Ctrl+Shift+F 可能漏掉部分文件。等它消失再搜,才是稳的。


















