ctrl+shift+f(windows/linux)或cmd+shift+f(macos)是sublime text唯一支持跨文件内容搜索的快捷键,需在项目模式下生效,且where输入框须规范填写如“.”或“src/”等路径格式。

Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)是唯一能真正跨文件搜索的快捷键,其他组合如 Ctrl+F、Ctrl+P、Alt+F3 都不满足“多文件内容搜索”需求。
为什么 Ctrl+Shift+F 没反应或搜不到结果?
它不是快捷键失效,而是项目上下文没准备好:Sublime 的全局搜索只在「项目模式」下激活,单文件打开或仅用 File → Open Folder 不会触发真实扫描。
- 左下角状态栏必须显示类似
~/my-project/的路径,否则面板会灰显或返回空结果 - 必须通过
Project → Add Folder to Project…将目录加入侧边栏(不是 File → Open Folder) - macOS 用户需检查系统级冲突:
Cmd+Shift+F默认被 Spotlight 占用,要去「系统设置 → 键盘 → 快捷键 → Spotlight」里关掉 - 插件可能劫持该快捷键,可打开
Preferences → Key Bindings – User检查是否有重复绑定
Where 输入框到底填什么才靠谱?
留空 ≠ 全局搜索,反而可能遍历整个磁盘(尤其含 node_modules 时),填错格式等于白搜。
- 搜整个项目:填
.(单个英文点),不是./、*或** - 只搜
src/下所有文件(含子目录):填src/,不加**或前导./ - 排除干扰目录:写成
., -node_modules/, -dist/, -build/(逗号分隔,斜杠统一用/) - 限定文件类型:如
src/**/*.ts,src/**/*.tsx,不支持*.(ts|tsx) - 搜已打开但未保存的标签页:手动填
open_files
怎么避免搜 fetch 却匹配到 refetch 或字符串里?
Sublime 是纯文本引擎,不解析语法树,所以默认行为很“粗暴”。靠开关和正则收窄范围才是关键。
- 开启
Match Whole Word(快捷键Alt+Enter),fetch就不再匹配refetch,但仍会匹配fetch() - 要更严格?启用
Regular Expression(.*按钮),写成\bfetch\b(\b是单词边界) - 定位 JS 函数定义:正则用
^\s*function\s+render\b或\bconst\s+render\s*=\s*function,注意括号要转义:console\.log\(\) - Python 函数:正则写
^\s*def\s+render\b,Where填*.py - 搜中文或 Unicode 字符前,确认右下角编码是
UTF-8,否则正则可能错位或报invalid byte sequence
替换完文件没变?不是 Bug,是设计如此
Replace All in Files 的修改存在内存里,不触发文件修改标记,也不自动保存。
- 替换后必须手动执行
File → Save All,或快捷键:Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B) -
Ctrl+S只保存当前激活标签页,对批量替换无效 - 务必先点
Find All,确认结果面板列出全部目标条目,再点Replace All
最常被忽略的是项目加载方式和 Where 填写规范——这两个点卡住 80% 的人。别跳过 Project → Add Folder to Project… 这一步,也别把 . 写成 ./。











