Ctrl+Shift+F(Windows/Linux)或Cmd+Shift+F(macOS)是Sublime Text全局查找替换的唯一入口;必须先通过Open Folder打开项目根目录,Where字段填“.”才表示整个项目,误设会导致误替换;正则替换需注意PCRE语法与$1引用格式;Replace All不可撤销,务必提前git commit并手动保存。
Ctrl+Shift+F 是唯一需要记住的全局入口
Sublime Text 没有“项目搜索”按钮,也没有“一键全搜”开关——它的全局查找替换功能全部收束在
(Windows/Linux)或
(macOS)这一个快捷键里。很多人卡在第一步:按了
或
死活搜不到跨文件内容,是因为那俩只作用于当前标签页。
必须先通过
打开项目根目录,左下角状态栏出现路径(如
)才算进入“项目模式”;否则
面板里的
字段会灰显或仅显示“Open Files”
留空 ≠ 搜整个项目,它实际等价于“只搜当前已打开的文件标签”,不是你想要的结果
真正表示“整个项目”的写法是
(单个英文点),这是相对路径语法,代表当前打开的文件夹及其所有子目录
Where 字段决定你改的是谁,不是靠运气
90% 的误替换事故,不是正则写错了,而是
没锁死范围。比如把
里的
也一起替了,第二天
直接报
。
安全写法示例:
—— 明确限定业务代码和测试,逗号分隔多类型
排除干扰目录:
—— 注意斜杠方向统一用
,即使在 Windows 上
别信“整个项目很干净”,
干净 ≠ 没有临时生成文件;
设置可能让
或
文件被跳过,查不到不一定是没匹配,可能是被过滤了
正则替换要小心引用语法和转义细节
Sublime 的正则引擎用的是 PCRE 风格,但替换语法是自己的:捕获组用
、
,不是
;点号
默认不匹配换行,想跨行得加
前缀。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
函数调用重构示例:把
改成
查找:
(注意括号要转义)
替换:
删掉所有独立的
语句(不碰字符串里或注释里的):
查找:
(
和
锁定整行,
转义点号)
替换:留空,或填
转为注释
双引号变单引号:
→
;但若字符串含转义引号(如
),这个正则就失效了,得升级为
,建议先小范围试
Replace All 不可撤销,靠 Git 而不是 Ctrl+Z
点下
的那一刻,所有匹配文件的内容就被直接写入磁盘——没有“确认弹窗”,没有“操作历史”,
只对当前激活的文件标签有效,且一旦你切走标签,撤销栈就清空了。
务必在操作前执行:
确保工作区干净;如果已有未提交变更,先
或
替换完别急着关面板,先按
松开,再按
(即
),否则改动只是内存脏数据,关掉 Sublime 就丢了
大项目慎用
:优先用
按钮逐个点,配合
跳转,节奏可控;或者导出 Find in Files 结果(右键结果列表 →
),留档比对
最危险的不是功能不会用,是觉得“就几个字符串而已”,跳过
校验、跳过
预览、跳过
,最后在 CI 流水线上看到
才意识到改错了三十七个地方。
Ctrl+Shift+FCmd+Shift+FCtrl+FCtrl+HFile → Open Folder…~/my-project/Ctrl+Shift+FWhereWhere.Wherenode_moduleslodashnpm startTypeError: _.map is not a function./src/**/*.ts, ./tests/**/*.ts., -node_modules/, -dist/, -build/, -*.min.js/git statusfile_exclude_patterns.log.tmp.(?s)getUser(id)getUser({ id })getUser(([^)]+))getUser({ $1 })console.log^s*console.log([^)]*);s*$^$.// $0"([^"]*)"'$1'"He said "hi"""((?:[^"\]|\.)*)"Replace AllCtrl+Zgit statusgit stashgit add -A && git commit -m "before global replace"Ctrl+KCtrl+BFile → Save AllReplace AllReplaceF3Save asWhereFindgit commitReferenceError: oldVar is not defined