ctrl+shift+f打不开需先确认项目模式并检查快捷键冲突;where字段填“.”才搜索整个项目,排除目录用“-node_modules/”等;正则替换需启用.*图标并注意元字符转义。

Ctrl+Shift+F 打不开?先确认项目模式和快捷键
按 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)没反应,90% 是因为没进项目模式或快捷键被劫持。左下角状态栏必须显示类似 ~/my-project/ 的路径,否则面板会灰显、只搜“Open Files”。关掉所有单文件标签页,用 File → Open Folder… 重新选中项目根目录——侧边栏出现完整树形结构才算生效。
快捷键冲突更常见:打开 Preferences → Key Bindings – User,搜 "ctrl+shift+f" 或 "cmd+shift+f",删掉插件自定义项;原生绑定应为:{"keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"}}。仍无效?临时禁用所有插件逐个排查。
Where 字段填什么才真正扫整个项目?
Where 不是路径补全框,是 Shell 风格过滤表达式。留空 ≠ 全项目,它等价于“只搜已打开的标签页”。填错一个字符,可能漏掉 90% 文件。
- 整个项目:必须填单个英文点
.(不是./,也不是./src) - 只搜
src/下所有文件:填src/(自动递归子目录,不用写src/**/*) - 排除
node_modules和dist:写成., -node_modules/, -dist/(逗号分隔,减号开头,统一用正斜杠/) - 限定多类型:如
./src/**/*.ts, ./tests/**/*.ts(不支持*.{ts,tsx}这类语法) - Linux/macOS 路径区分大小写:
./SRC和./src是两个目录
正则替换总出错?盯住 .* 图标、$1 和 (?s)
正则开关是面板级独立的:Ctrl+F、Ctrl+H、Ctrl+Shift+F 三处的 .* 图标必须各自点开(变蓝才算启用)。灰色 = 关闭,$1 在替换框里会被当字面量输出,不是捕获组引用。
- 捕获组只能用
$1、$2,不能用\1 - 括号、点号等元字符必须转义:查
console\.log$$[^)]+$$,不是console.log([^)]+) -
.默认不匹配换行符:foo.*bar永远找不到foo\nbar;跨行必须加前缀(?s)foo.*bar - 单词边界慎用:
\buser_id\b对_不敏感,仍会匹配username;更稳写法:(?
Replace All 后文件没保存?这不是 Bug,是设计
点了 Replace All in Files,所有标签页出现星号 *,这只是内存脏状态标记——关掉未保存的标签页,改动直接丢弃。Sublime 从不自动保存被修改的文件。
- 必须手动执行
Ctrl+K松开,再按Ctrl+B(Windows/Linux);macOS 是Cmd+K → Cmd+B - 高风险操作前务必
git commit -m "before global replace"—— 没有跨文件撤销历史 - 大项目记得在
Preferences → Settings加"index_files": false,否则搜索卡死或漏文件;关了还得清缓存目录 - 非 UTF-8 编码文件(如 GBK)默认被跳过,右下角看编码,点开转成 UTF-8 再操作
Where 填错、.* 没点开、替换后没保存——这三步漏一个,改得再准也没用。











