Ctrl+Shift+F没反应90%是按键未进入Sublime:先用sublime.log_input(True)验证,无输出则被系统/输入法/显卡热键拦截;有输出再查项目模式、Where填“.”、索引完成及正则开关。

Ctrl+Shift+F(Win/Linux)或 Cmd+Shift+F(macOS)没反应,90% 是按键根本没进 Sublime,而不是功能坏了。先确认输入是否抵达编辑器,再查路径、索引、正则开关这些硬条件。
按键压根没进 Sublime?用 sublime.log_input(True) 验证
这是第一步,也是最关键的判断依据。如果控制台完全没输出,说明系统或外围软件截断了快捷键:
- Windows 用户重点检查 NVIDIA 控制面板或 Intel Graphics Command Center 里的热键(如 Ctrl+Alt+方向键)
- 搜狗、QQ 拼音等中文输入法默认劫持
Ctrl+Shift切换中英文,切到英文输入法再试 - macOS 用户去「系统设置 → 键盘 → 快捷键 → Spotlight」关掉
Cmd+Space,并检查「输入源」切换是否占用了同名组合键
操作方式:按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按 Ctrl+Shift+F。有 key evt: ctrl+shift+f 输出,才进入下一步排查。
项目没加载?侧边栏和状态栏是唯一可信指标
Sublime 的全局搜索只在“项目模式”下工作,单文件打开、拖文件进窗口、甚至用 Add Folder to Project 添加路径,都不等于真正加载项目。
- 看左下角状态栏:必须显示类似
~/my-project/的路径,没有 → 还没进项目模式 - 看侧边栏:必须有完整树形目录结构,只有标签页列表 ≠ 项目已加载
- 正确做法是:关掉所有标签页,用
File → Open Folder…选中项目根目录(比如src上一级),等右下角Indexing…消失再操作
Mac 用户注意:Cmd+Shift+F 常被系统 Spotlight 占用,需手动禁用;Linux 用户若用 subl --safe-mode 后恢复正常,基本可断定是插件冲突。
Where 输入框填错?它不是 glob,也不是正则,而是路径前缀匹配器
填错一个字符,搜的就是错的地方。留空 ≠ 搜整个项目,./ ≠ .,/src/ 在 Windows 下会失效。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空 - 只搜
src/下所有文件(含子目录):填src/,自动递归,不用写src/**/* - 限定类型 + 排除干扰:填
src/**/*.js, -node_modules/, -dist/(逗号分隔,-开头表示排除) - 只搜已打开但未保存的标签页:必须手动填
open_files,这是唯一可靠方式
别写 /src/ 或 ./src/——/ 开头会被当字面量处理,尤其在 Windows 下斜杠异常。
搜到了但替换不生效?$1 不起作用、结果不保存都是设计使然
正则替换和批量保存都有明确前提,不是点了就完事:
-
.*图标必须为蓝色才真正启用正则;否则$1就是字面字符串,括号、点号也不会被转义 - 跨行匹配必须加
(?s)前缀,例如(?s)"content": "(.*?)";否则foo.*bar永远找不到foo\nbar -
Replace All in Files改完不保存是设计行为:所有修改存在内存里,不触发修改标记,也不自动保存 - 替换后必须手动执行
File → Save All,或快捷键Ctrl+K松开 → 再按Ctrl+B(macOS 是Cmd+K→Cmd+B)
最易忽略的是:替换前没点 Find All 确认匹配项数量,一按 Replace All in Files 就不可逆。上千条匹配出现时,先停手检查正则或路径。


















