Sublime Text 无通配符查找替换,需分清场景:Ctrl+P用glob(匹配文件名),Ctrl+Shift+F的Where用路径glob(*递归,-dir/排除),Find框须开正则(Alt+R)才能模糊匹配内容。

Sublime Text 本身不支持通配符查找替换(如 *、?),所有“通配符”行为实际是正则表达式或路径 glob 的误用结果——直接写 *.js 在 Find 框里会完全匹配失败,必须分清场景用对语法。
Ctrl+P 搜文件名时的 “通配符” 是 glob,不是正则
按 Ctrl+P(Windows/Linux)或 Cmd+P(macOS)搜文件,输入的是 Shell glob 风格路径,不是正则:
-
main.*→ 匹配main.js、main.py(*表示任意字符序列) -
util/→ 优先高亮util/目录下的入口文件(斜杠触发目录优先) -
api*util*.ts→ 可匹配apiClientUtil.ts,但api.*util.*\.ts会失效(.和\在 glob 中无特殊含义) - 新增文件后必须手动
Ctrl+Shift+P→Refresh Folders,否则搜不到
Ctrl+Shift+F 全局内容搜索的 “Where” 不认通配符,只认路径和排除规则
在 Ctrl+Shift+F 面板的 Where 输入框里,* 不是通配符,而是字面量字符:
- 填
./src/**/*.js→ 有效(双星号**是 Sublime 支持的递归 glob 语法) - 填
*.html→ 失败(这不是 glob 上下文,Sublime 会当作文件名字面量去查) - 填
., -node_modules/, -dist/→ 正确(逗号分隔,斜杠结尾表示排除整个目录) - 填
src或./src→ 只搜当前层,漏掉子目录;必须用./src/**或., -node_modules/覆盖全项目
真正要模糊匹配内容,必须开正则模式(Alt+R),别信“通配符”说法
想匹配“以 src= 开头、后面跟任意非引号内容、再以 .png 结尾”的属性值,不能写 src="*.png",得用正则:
- 开启正则:点面板右下角
.*图标,或按Alt+R - 查找:
src="([^"]*\.png)"([^"]*比.*?更稳,避免跨引号吞掉alt="x.png") - 替换:
src="{% static '$1' %}"($1引用捕获组) - 错误示范:
src=".*\.png"→ 会从第一个"吞到最末尾的",整行崩掉
为什么总有人觉得“通配符能用”?其实是混淆了三个入口
用户常把三件事混为一谈,导致配置错位、效果失控:
-
Ctrl+P:只搜文件名,用 glob(*有效,**有效,.*无效) -
Ctrl+Shift+F的Where:限定路径范围,用逗号分隔的 glob 式路径 + 排除项(-node_modules/有效,*.py无效) -
Ctrl+Shift+F的Find框:查文件内容,必须开正则才能做模糊匹配(.*是正则,不是通配符)
最易忽略的一点:所有路径里的斜杠必须统一用 /,Windows 用户别写 \,否则 -node_modules\ 会被忽略——Sublime 只认 / 作为路径分隔符和排除标记。


















