sublime text的find in files需在项目目录下使用,where填“.”搜全项目,正则需转义元字符,替换后必须手动保存。

Sublime Text 的 Find in Files 不是“加强版 Ctrl+F”,它是工程级代码审查的起点——但必须用对入口、路径和正则,否则搜出来的全是噪音。
Ctrl+Shift+F 灰了?先确认你是不是在项目里
Sublime 的全局搜索根本不管单个文件。它只认 File → Open Folder… 加载的目录结构。左下角状态栏没显示类似 ~/my-project/ 的路径,Ctrl+Shift+F 就永远灰着——这不是插件冲突,是根本没加载上下文。
- 关掉所有标签页,重新用
Open Folder…选中项目根目录(比如package.json所在层) - 侧边栏必须出现完整树形结构;
Add Folder to Project容易叠加路径,导致Where行为异常,别碰 - 某些旧版
ProjectManager插件会劫持快捷键,临时禁用插件验证是否干扰
Where 输入框不是路径补全器,是 Shell 风格过滤表达式
填错一个字符,搜的就是错的地方。它不解析相对路径,也不自动补 /,更不识别 Windows 反斜杠。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空(留空只搜当前已打开的 Tab) - 限定子目录:
./src/**/*.ts(双星号才递归),./tests/*.py(单星号只匹配一级) - 排除目录:
-/node_modules/(根目录下),-*/node_modules/(所有层级),逗号后要加空格,如., !dist/, !.git/ -
folder_exclude_patterns只影响侧边栏和索引,对本次Find in Files完全无效
搜函数定义不能只输名字,得靠语法锚定
Sublime 是纯文本引擎,没有 AST 解析能力。搜 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\(\),否则.和()被当正则元字符解析
Replace All 后内容不保存?这是设计,不是 Bug
Sublime 把替换结果写在内存缓冲区里,不触发修改标记,也不弹任何提示——关掉就丢。
- 替换完成后,必须手动执行
File → Save All - 快捷键:Windows/Linux 是
Ctrl+K松开 → 再按Ctrl+B;macOS 是Cmd+K→Cmd+B -
Ctrl+S只存当前激活文件,对其他被改的文件完全无效 - 批量替换前建议用 Git commit 或手动备份,
Replace All没撤回机制
真正卡住人的从来不是功能有没有,而是 . 该不该加斜杠、- 该不该带星号、\. 该不该转义——这些细节不试错几遍,根本记不住。











