sublime text全局搜索仅限已加载项目文件夹内,需通过file→open folder…加载根目录;where输入框填“.”才搜整个项目,填错路径前缀将导致搜索失效。

Sublime Text 的“全局搜索”不是指全磁盘扫描,而是严格限定在已加载的项目文件夹内;没通过 File → Open Folder… 加载目录,Ctrl+Shift+F 就不会真正工作。
为什么 Ctrl+Shift+F 灰显或搜不到东西
它只响应「项目模式」——也就是左下角状态栏显示类似 ~/my-project/ 的路径,且侧边栏有完整树形结构。单文件打开、只用 Add Folder to Project、或插件覆盖快捷键,都会导致失效。
- 检查状态栏:没路径显示 → 说明根本没进项目模式
- 别用
Add Folder to Project拼凑路径,容易叠加出错;应直接File → Open Folder…选最外层根目录(比如src上一级) - Mac 用户注意:
Cmd+Shift+F可能被系统 Spotlight 占用,需在「系统设置 → 键盘 → 快捷键 → Spotlight」里关掉 - 查
Preferences → Key Bindings – User,删掉可能冲突的ctrl+shift+f绑定
Where 输入框到底填什么才有效
Where 不是 shell,也不是正则,默认是路径前缀匹配器。填错一个字符,就等于搜了别的地方。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空 - 只搜
src/下所有文件(含子目录):填src/,不用加**或./ - 排除
node_modules和dist:写成., -node_modules/, -dist/(逗号分隔,斜杠统一用/) - 限定文件类型:如
src/**/*.ts, src/**/*.tsx(支持**,但不支持*.+(ts|tsx)) - 搜已打开但未保存的标签页:唯一方式是手动填
open_files—— 官方文档几乎不提,但真有用
搜函数定义或 API 调用,纯输名字会误中
Sublime 是纯文本引擎,不解析语法。搜 fetch 会命中注释、字符串、refetch,甚至变量名。
- 避免误匹配:点右上角
W(Whole Word)按钮,fetch就不再匹配refetch,但仍能匹配fetch() - 要更严格?启用
.*(正则),写成\bfetch\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,否则正则可能错位
替换后内容“消失”,不是 Bug,是设计
Sublime 的 Replace All in Files 把修改存在内存里,不触发文件修改标记,也不自动保存——关掉就清空,且无任何提示。
- 替换完必须手动执行
File → Save All,或快捷键:Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B) -
Ctrl+S只保存当前激活文件,对其他已改未存的文件完全无效 - 高风险操作前务必
git stash,替换完用git diff核对真实改动,别信面板里“已替换 X 处” - 如果
Where填得太宽(比如漏掉-node_modules/),可能误改构建产物,且难以回溯
最容易被忽略的其实是 Where 的语义:它默认不是递归匹配,src/ 就是 src/,不是 src/**;而 . 才代表整个项目。填错这一个点,后面所有操作都在白忙。











