Sublime搜索替换需精准控制范围、正则开关和作用域:Where留空仅搜打开文件,跨目录须填./src/*/.ts;.*、. matches newline、Match Whole Word三按钮决定正则生效;Replace All不可撤销,务必先Find All预览。
Sublime 的搜索替换不是“搜完就换”,关键在控制范围、锚定边界、预览结果——漏设
会扫进
,不点
按钮正则就是摆设,没点
就按
等于主动删库。
Ctrl+Shift+F 打开的到底是不是“全局”?
不是。默认
框留空时,它只搜当前已打开的标签页,不是整个项目。真要跨所有子目录,必须手动填
(一个英文点),或更安全的
这类明确路径。
表示当前打开的文件夹及其全部子目录,是真正“项目级”搜索的起点
写
不会递归进
,得用
或
排除目录必须加减号:
,斜杠方向统一用
,Windows 也不例外
如果左下角状态栏没显示项目路径(如
),说明没通过
加载项目,
再怎么填也无效
正则替换总出错?先看这三处开关
Sublime 正则不是“写了就能跑”,三个面板按钮决定它认不认你写的表达式:
按钮必须点亮——否则
当普通字符串处理,根本不会匹配数字
要手动勾选,否则
遇到换行就停,
这种跨行注释提取才有效
(快捷键
)等价于正则里的
,想改
又不碰
,不开它必翻车
替换框里不支持正则语法,只认
、
这类捕获组引用,别写
以外的
,Sublime 不解析
为什么 Find All 显示 237 处,Replace All 却没反应?
常见原因不是功能失效,而是作用域被静默限制了:
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
当前文件编码含 BOM(如 UTF-8 with BOM),会导致
删空行失败——先转成 UTF-8 without BOM 再试
或
配置项可能过滤掉了目标文件,比如
会让日志文件直接不出现在结果里
没关
:大项目里它会卡住甚至崩溃,务必在
里加
搜索结果列表里点击某条跳转后,焦点回到文件里,此时
只对当前文件生效——必须确保焦点还在查找面板里再点
删空行、改引号、重命名变量:三个高频场景的可靠写法
别抄网上万能正则,Sublime 的
引擎不支持
删纯空行(含空格和 Tab):
→ 替换为空;别用
,
会吞掉
导致文件末尾错乱
双引号变单引号(基础安全版):
→
;若字符串含转义引号(
),升级为
下划线转驼峰(
→
):
→
;
是 Sublime 特有转义,把下一个字符转大写
删掉独立的
行(不碰字符串和注释内):
→ 留空;
和
锁定整行,
转义点号防误匹配
最易被忽略的是:所有
操作不可撤销,
仅对当前文件有效。每次执行前,先
,再
看右下角数字是否合理——数字异常大,立刻停手检查
和正则边界。
Wherenode_modules.*Find AllReplace AllWhere../src/**/*.ts.src/src/utils/src/**src/**/*.js., -node_modules/, -dist/, -build//~/my-project/File → Open Folder…Where.*d+. matches newline.(?s)Match Whole WordAlt+Enteriduser_id$1$2$0$10^s*$file_exclude_patternsfolder_exclude_patterns"*.log"index_filesPreferences → Settings"index_files": falseReplace AllBoost regex? 这类高级断言,以下写法经实测稳定:^[ ]*$^s*$s
"([^"]*)"'$1'"He said "hi"""((?:[^"\]|\.)*)"user_nameuserName([a-z]+)_([a-z])([a-z]*)$1u$2$3uconsole.log^s*console.log([^)]*);s*$^$.Replace AllCtrl+Zgit commitFind AllWhere