Sublime全局搜索需先加载项目文件夹,否则Ctrl+Shift+F灰显;Where输入框填“.”搜全项目,排除用“-node_modules/”;替换后必须手动Save All,正则替换需启用.*按钮并注意$1引用和(?s)跨行。

Sublime 的全局搜索不是“打开就搜”,而是必须先建立项目上下文,否则 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)根本不可用——面板灰显、快捷键无反应、结果为空,全是这个原因导致的。
为什么 Ctrl+Shift+F 灰显或没反应?
它只在“已加载文件夹”模式下激活,单文件打开时完全失效。
- 看左下角状态栏是否显示类似
~/my-project/的路径;没有,说明还没进项目模式 - 关闭所有单文件标签页,用 File → Open Folder… 重新选中项目根目录
- 侧边栏出现完整树形结构,才是生效标志;
Add Folder to Project容易叠加路径,不推荐 - 快捷键被插件劫持也很常见:打开 Preferences → Key Bindings – User,搜
ctrl+shift+f,删掉冲突项
Where 输入框到底怎么填才有效?
它不是 shell,也不是正则,默认是路径前缀匹配。填错等于白搜。
- 搜整个项目:填单个
.(不是./,也不是留空) - 只搜
src/下所有文件:填src/(自动递归子目录,不用写src/**/*) - 排除
node_modules和dist:写成., -node_modules/, -dist/(注意统一用正斜杠/) - 限定文件类型:用逗号分隔,如
./src/**/*.ts, ./tests/**/*.tsx(**支持,但*.+(ts|tsx)不支持) - 搜不到
.log或.md?检查file_exclude_patterns设置里是否含"*.log",临时删掉即可
替换后内容全丢了?这是最常被忽略的致命操作
Sublime 的全局替换不会自动保存,也不会标记文件为“已修改”,关掉就清空内存,毫无提示。
- 替换完成后,必须手动执行 File → Save All,或快捷键:
Ctrl+K松开 →Ctrl+B(Windows/Linux),macOS 是Cmd+K→Cmd+B - 别依赖标签页右上角的星号
*—— 它不强制你保存,也不阻止你直接关窗口 - 高风险替换前务必
git commit -m "before global replace";出错时git checkout .秒级回滚 - 点了
Replace All in Files后,结果只存在内存里,不点保存就是脏状态,没有任何撤销历史
正则替换踩坑最多:点错一个按钮,整个项目就乱套
Sublime 的正则引擎行为和常见工具不一致,尤其捕获组和换行处理。
- 开启正则必须点
.*按钮,不是勾选Regular Expression(那个选项名是误导) - 捕获组引用用
$1、$2,不是\1;.默认不匹配换行符,跨行要加(?s)前缀 - 想改
getUser(id)为getUser({ id }),查找填getUser$$([^)]+)$$(括号必须转义),替换填getUser({ $1 }) - 避免误改
user_id或identity:开Whole Word(W 按钮),或正则写成\bid\b,别只写id - 替换前一定先点
Find All,看右下角命中数;上千条就暂停,检查路径或正则是否太宽泛
真正麻烦的从来不是功能不会用,而是你以为它“自动保存”“自动识别项目”“默认排除 node_modules”——它什么都不会自动,每一步都得你亲手确认路径、排除项、编码、保存动作。漏掉任意一环,轻则白忙,重则炸掉依赖。











