跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

Sublime文本处理技巧有哪些_Sublime如何高效搜索与替换内容

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

相关文章