必须用File→Open Folder…加载项目根目录并保存为.sublime-project文件,Where填<project>才能精准搜索当前项目;否则Ctrl+Shift+F灰显或无效,因Sublime不支持单文件全局搜索。

必须用 File → Open Folder… 加载项目根目录,且 Where 字段填 <project>,否则搜的不是“当前项目”,而是某个缓存路径或已打开文件的拼凑结果。
为什么 Ctrl+Shift+F 灰显或搜不到任何内容?
这不是快捷键被占用或软件故障,而是 Sublime 根本没识别出你在操作一个项目。它不支持单文件上下文下的全局搜索。
- 左下角状态栏没显示类似
~/my-project/的路径 → 还在“单文件模式” - 侧边栏只有标签页列表、没有树形目录结构 →
File → Open Folder…没执行成功 - 用了
Project → Add Folder to Project…叠加路径 → 范围可能错乱,优先关掉所有标签页后重来 - Mac 用户:系统级
Cmd+Shift+F(Spotlight)未禁用 → 快捷键被截获,不会触发 Sublime 面板
Where 字段必须填 <project>,不是 . 或 ./
<project> 是唯一能严格绑定到当前项目定义范围的占位符。它会读取 .sublime-project 文件里的 "folders" 列表;若项目未保存,它会退化为当前打开的文件夹——所以务必先保存项目。
- ✅ 正确:
<project>(项目已保存为.sublime-project文件) - ⚠️ 危险:
.—— 表示“当前工作目录”,但这个目录可能不是你认为的项目根目录(比如从终端启动 Sublime 时 pwd 是/tmp) - ❌ 错误:
./src/或/src/—— 前者在 Windows 下斜杠异常,后者会被当字面量处理,搜不到任何匹配 - 别信“自动推断”:Sublime 不会根据
package.json或src/目录自动设为项目根,必须手动指定
排除 node_modules 等目录不能只靠 Where 字段
Where 字段的临时过滤(如 <project>, -node_modules/, -dist/)和用户设置里的 folder_exclude_patterns 是叠加生效的。只改其中一处,很可能漏掉干扰项。
- 永久排除:在
Preferences → Settings – User中加入:
"folder_exclude_patterns": ["node_modules", ".git", "dist"], "file_exclude_patterns": ["*.log", "*.tmp"]
Where 输入框写 <project>, -build/, -*.min.js(逗号分隔,- 开头)file_exclude_patterns 里已有 "*.log",那即使 Where 没写排除,所有 .log 文件也不会出现在结果中utils/ 目录?按 Ctrl+Shift+P → 输入 Refresh Folders 回车,不是 Rebuild Index
正则替换后 $1 不生效?三个开关要分别点蓝
Find in Files 面板的查找和替换区域,正则开关是独立控制的。一个没点开,$1 就只是普通字符。
- 查找框右侧的
.*图标必须为蓝色 → 否则console\.log\(.*?\)当作字面字符串匹配 - 替换框右侧的
.*图标也必须为蓝色 → 否则$1不展开,输出就是字面$1 - 跨行捕获需加
(?s)前缀,例如(?s)"content": "(.*?)",否则foo.*bar找不到换行后的bar - 替换后所有修改都在内存中,不触发保存标记 → 必须手动
File → Save All,否则关掉就丢
最常被忽略的一点:项目未保存为 .sublime-project 文件时,<project> 的行为不可靠;而很多人以为只要侧边栏有目录就算“项目已加载”。实际得看它有没有被 Sublime 认作一个可序列化的 project 实体——这一步必须手动完成。


















