sublime text无一键导出功能,需组合快捷键与正则:用find all提取非整行匹配项(需捕获组)、^.pattern.$提取整行、find in files跨文件批量提取;复制后常带多余空白,应正则清理行首尾空格。

Sublime Text 没有“一键导出匹配内容”功能,所谓“一键”本质是组合快捷键+合理正则+手动复制,核心在于控制匹配粒度和结果组织方式。
怎么用 Find All 提取所有匹配项(非整行)
这是最轻量的提取方式,适合抓取代码中的变量名、函数调用、字符串字面量等片段。
- 打开查找面板(
Ctrl+F/Cmd+F),点击右上角.*启用正则模式 - 输入正则,例如提取所有
fetch调用的 URL 字符串:fetch\s*\(\s*["']([^"']*)["']—— 注意括号捕获组只包住 URL 部分 - 点击
Find All,Sublime 会高亮所有匹配项,并把光标停在每个匹配起始位置 - 此时所有匹配文本已被选中;直接
Ctrl+C复制,粘贴后就是纯文本列表(每项换行) - ⚠️ 坑:如果正则没写捕获组,复制出来的是整个匹配(含
fetch(等前缀);想只取关键部分,必须用(...)包住目标子表达式
怎么用 ^.*pattern.*$ 提取完整匹配行
适用于日志分析、错误行筛选、配置项提取等需要保留上下文的场景。
- 正则开头加
^、结尾加$,强制匹配整行,例如:^.*ERROR.*$或^const\s+\w+\s*= - 点
Find All后,所有匹配行被选中,但只是“首字符”被选中 —— 此时按Ctrl+L(Windows/Linux)或Cmd+L(Mac)可逐行扩展为整行选择 - 更高效的做法:选中后,按
Ctrl+Shift+L(或Cmd+Shift+L)直接拆分为多行并全选,再Ctrl+C - ⚠️ 坑:若文件编码不是 UTF-8,某些特殊字符(如带重音的法语日志)可能匹配失败;建议先执行
File → Reopen with Encoding → UTF-8
怎么跨文件批量提取并整理成列表(Find in Files)
当你要从整个项目里捞出所有 TODO、接口路径、或某类注释时,这是唯一可行路径。
- 用
Ctrl+Shift+F打开Find in Files面板,填好正则(如//\s*TODO:\s*(.*)),Where栏限定路径(如./src/**/*.ts) - 勾选
Regular Expression,点击Find - 结果面板里会列出所有匹配项,格式为
文件路径:行号:匹配内容;点击任意一条,按Shift+ 点击最后一条可全选 - 右键 →
Copy,或直接Ctrl+C;粘贴到新文件后,可用正则替换清理前缀:^.*?:\d+?:\s*→ 空,只留内容本身 - ⚠️ 坑:默认结果不包含文件名前缀,但如果你在
Where填了相对路径(如src/),结果里会带该前缀;想彻底干净,Where改为绝对路径或.,再用替换删掉
为什么导出结果总带多余空格或换行?
这不是 Sublime 的 bug,而是它对“选中”的定义与用户预期不一致——它选中的是视觉区域,不是逻辑文本块。
- 用
Find All后复制,若正则末尾有空白字符(比如写了console\.log\([^)]*\)却忘了\s*),就会把空格、换行符一起带上 - 解决方法:在正则里显式排除空白,例如用
\S+替代\w+,或结尾加\s*$并启用Match case避免误吞 - 更稳妥的清理方式:复制后,在新标签页中用
Ctrl+H打开替换面板,正则填^\s+|\s+$(匹配行首/行尾空白),替换成空 - ⚠️ 真正容易被忽略的是:Sublime 的“查找结果”面板本身不支持列编辑,一旦你复制了带缩进的多行结果,想对齐处理只能靠后续替换——别指望在结果页里按住
Alt拖选列











