sublime text 不支持一键合并多个文件,需借助命令行、python脚本或手动操作;核心难点是编码混杂、换行符不统一和分隔逻辑缺失。

Sublime Text 本身不支持一键合并多个文件
别在菜单里找了,也没有插件能绕过这个限制——所有“快速合并”都得靠外部工具或手动控制。核心难点就三个:编码混杂(UTF-8/GBK)、换行符不统一(\r\n vs \n)、分隔逻辑缺失(粘连后分不清哪段来自哪个文件)。想省事又不出错,得按场景选路子。
用命令行 cat 或 type 批量拼接最省时
适合几十个 .txt、.log、.md 文件,不走 Sublime 内存,无卡顿风险:
- macOS/Linux:
cat /path/to/*.txt > combined.txt;注意*不匹配隐藏文件(如.env),要包含得写./folder/.* *.txt并手动排除.和.. - Windows:
type "C:\my folder\*.txt" > combined.txt;路径含空格必须加双引号 - 防粘连:加分隔线,比如
for file in ./src/*.txt; do echo "// === $(basename "$file") ===" >> combined.txt; cat "$file" >> combined.txt; echo "" >> combined.txt; done - 关键前置动作:先过滤二进制文件,否则
cat image.png会把乱码塞进combined.txt;可用file -i *.txt | grep -E "text|charset=utf"筛一遍
用 Python 脚本精准控制编码与分隔
当文件混用 UTF-8 和 GBK,或需要统一去末尾换行、插自定义分隔线时,脚本比命令行更可控:
- 新建
merge.py放在目标目录下,内容示例:import os<br>files = ['a.txt', 'b.txt', 'c.txt']<br>with open('merged.txt', 'w', encoding='utf-8') as out:<br> for f in files:<br> with open(f, encoding='utf-8') as i:<br> content = i.read().rstrip('\n')<br> out.write(content + '\n' + '-'*50 + '\n') -
.rstrip('\n')是关键:避免两个文件末尾都有换行,导致中间多出空行 - 若某文件是 GBK 编码,不能直接
open(, encoding='gbk')混用;得单独处理,或提前用 Sublime 的File → Reopen with Encoding → GBK转存为 UTF-8 - 脚本不自动排序:
os.listdir()返回顺序不可靠;需按字母序合并时改用sorted(glob.glob("*.txt"))
手动并排复制粘贴最可靠但只适合少量文件
适合 ≤5 个文件、需人工删减/调序/校验内容的场景,避开所有编码和换行陷阱:
- 右键任一标签页 →
Move to New Group,或按Ctrl+Alt+1/2切分视图,把各文件拖到不同列 - 在目标文件中定位光标,切到源文件 →
Ctrl+A→Ctrl+C→ 切回目标 →Ctrl+V - 每粘一段后手动加空行分隔,避免日志或 JSON 行首无换行时错位
- 若源文件末尾没换行,下一段会紧贴着写过去;建议提前运行
Ctrl+Shift+P→Trim Trailing White Space
真正麻烦的不是怎么合并,而是合并后要不要保留原始结构、是否要过滤空行、是否要按修改时间排序——这些 Sublime 做不了,得在脚本里写逻辑,或者老老实实人工校对。











