Ctrl+Shift+F灰显是因为未进入项目模式;必须用File→Open Folder…加载项目根目录,左下角显示路径且侧边栏有树形结构才生效,Where填“.”搜全项目,替换后须手动Save All。

Ctrl+Shift+F 灰显?先确认是否真进了项目模式
Sublime 的全局检索根本没启动,八成是因为你只是双击打开了单个文件,而不是用 File → Open Folder… 加载了整个目录。它不认文件,只认文件夹——左下角状态栏必须显示类似 ~/my-project/ 的路径,否则 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)永远是灰色的。
关掉所有标签页,重新用 Open Folder… 选中项目根目录(比如含 package.json 或 src/ 的那一层),侧边栏出现完整树形结构才算生效。别用 Add Folder to Project,容易叠加路径导致范围错乱。
Where 框填什么才真正搜整个目录?
Where 不是路径补全框,也不是正则输入区,它是 Shell 风格的路径过滤表达式。填错一个字符,搜的就是错的地方。
- 留空 ≠ 全项目,它等价于只搜当前已打开的 Tab(
open_files) - 真要搜整个项目,必须填
.(单个英文点),不是./,也不是./src - 限定子目录:填
src/(前缀匹配,自动递归),或./src/**/*.js(双星号才递归) - 排除干扰:追加
-node_modules/ -dist/ -build/,注意斜杠统一用/,Windows 也一样
搜函数、中文、console.log 为什么总不准?
Sublime 是纯文本匹配,没有语义理解能力。直接输 render 会命中注释、字符串、类名;搜 console.log() 不转义,. 和 () 就被当正则元字符解析。
必须靠语法锚定:
- JS 函数声明:
^\s*function\s+render\b,勾选.*(正则)和Aa(大小写敏感),Where填*.js - 中文匹配失败?先看右下角编码是不是
UTF-8,不是就File → Reopen with Encoding → UTF-8;正则用[\u4e00-\u9fff]+,别用.* - 搜
console.log改成debugger?先开正则,查console\.log\([^)]*\),Where务必填open_files或具体路径,避免误改字符串里的内容
替换完内容不见了?不是 Bug,是设计如此
Replace All in Files 把修改写在内存里,不触发文件修改标记,也不自动保存——关掉就丢,且无任何警告。
替换完成后,必须手动执行:
-
File → Save All,或 - 快捷键组合:
Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B)
Ctrl+S 只存当前激活文件,千万别信它能保存全部。更稳妥的做法:替换前先 git stash,替换完用 git diff 确认范围,再决定是否 git stash pop。这个保存动作极易被忽略,但一旦跳过,所有改动就彻底消失。

















