ctrl+shift+f(windows/linux)或 cmd+shift+f(macos)是sublime text唯一全局搜索入口,前提是进入项目模式(file → open folder…),where填“.”搜全项目,路径过滤用shell风格表达式,正则搜索需转义元字符,替换后必须手动save all。

Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)是唯一能真正全局查字符的入口,其他快捷键都不行——Ctrl+F 只搜当前文件,Ctrl+P 只搜文件名。
为什么 Ctrl+Shift+F 灰显或点不动?
根本原因是 Sublime 没进入「项目模式」。它不认单个打开的文件,只认 File → Open Folder… 加载的根目录。
- 看左下角状态栏:必须显示类似
~/my-project/的路径,没这个就不是项目 - 关掉所有标签页,用
Open Folder…重新选中项目根目录(比如src上一级) - 侧边栏出现完整树形结构才算生效;
Add Folder to Project容易叠加路径,导致范围错乱,别用 - 某些插件(如旧版 ProjectManager)会劫持快捷键,临时禁用插件可验证是否干扰
Where 输入框到底填什么才有效?
Where 不是路径补全框,也不是正则输入区,它是 Shell 风格的路径过滤表达式——填错一个字符,搜的就是错的地方。
- 留空 ≠ 整个项目,它等价于只搜当前已打开的 Tab(即
open_files) - 真要搜整个项目,必须填
.(单个英文点),不是./,也不是./src - 限定子目录:填
./src/**/*.js(双星号才递归),./tests/*.py(单星号只匹配一级) - 排除干扰:追加
-node_modules/ -dist/ -build/,注意斜杠统一用/,Windows 也一样 - 搜
.md或.log却没结果?检查file_exclude_patterns是否含"*.log",或右下角编码是否为 UTF-8
搜函数定义或特定语法结构,不能只输名字
Sublime 是纯文本匹配,没有语义理解能力。搜 render 会命中注释、字符串、类名,必须靠语言语法“锚定”真实定义。
- JavaScript 函数声明:
^\s*function\s+render\b,勾选.*(正则)和Aa(大小写敏感),Where填*.js - 箭头函数或 const 声明:
\bconst\s+render\s*=\s*(?:function|\(.*?\)=>),括号和点号记得转义成\(、\. - Python:
^\s*def\s+render\b,Where填*.py - 搜
console.log()?得写成console\.log\(\),否则.和()被当正则元字符解析
替换后内容消失?这不是 Bug,是设计
Sublime 的 Replace All in Files 把修改写在内存里,不触发文件修改标记,也不自动保存——关掉就丢,且无任何警告。
- 替换完成后,必须手动执行
File → Save All,或快捷键组合:Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B) - 别信
Ctrl+S能保存全部,它只存当前激活文件 - 高风险操作前,建议先
git stash,替换完用git diff确认范围,再决定是否恢复 - 如果
Where里写了., -node_modules/却还是卡死,去Preferences → Settings关掉"index_files": true,避免后台构建全文索引拖慢响应











