notepad++的“连接文件”功能可批量合并已打开标签页内容为新文档,但需注意:顺序即合并顺序;不自动加空行或分隔符;大文件(>200mb)易卡死;编码不一致会导致乱码,须提前统一为utf-8。

用 Notepad++ 的“连接文件”功能批量合并多个文件
Notepad++ 本身没有“一键合并所有打开文件”的菜单项,但内置的 连接文件 功能(英文版叫 Concatenate)能快速把当前所有已打开的标签页内容按顺序拼成一个新文档——这是最稳妥、不依赖插件的原生方案。
常见错误是直接拖拽多个文件到 Notepad++ 窗口,结果只是并行打开,没触发合并;或者误点 另存为 覆盖了某个源文件。
- 先用
文件 → 打开或拖入方式,把要合并的全部文件在 Notepad++ 中以独立标签页形式打开(顺序即为最终合并顺序) - 确保所有目标文件都已加载完成(尤其大文件,避免合并时内容为空)
- 点击
文件 → 连接文件(v7.9+ 版本路径:菜单栏文件 → 连接文件;旧版可能在插件 → Plugin Admin → 安装 Concatenate 插件,但新版已内置) - 会自动新建一个空白标签页,填入所有已打开文件的内容(含换行分隔),不会修改原始文件
合并前需手动控制换行与分隔符
连接文件 默认只在每个文件末尾加一个换行符,不加空行或分隔线。如果源文件末尾已有换行,合并后可能出现“双换行”,影响后续处理(比如日志分析、CSV 解析)。
典型场景:合并多个 SQL 文件时,希望每段语句之间空一行;或合并日志片段时,需要插入 --- [file: xxx.sql] --- 标识来源。
- 合并前,可先对每个标签页执行
编辑 → 文档格式转换 → 转换为 UNIX 格式,统一行尾符,避免混合\r\n和\n - 若需自定义分隔,得手动操作:在合并后的新文档中,用
查找 → 在文件中查找(Ctrl+Shift+F)定位每个文件起始位置(比如搜索/*或第一行内容),再逐段插入分隔符 - 更高效的做法是:先用批处理或 PowerShell 预处理,生成带分隔的中间文件,再用 Notepad++ 打开单个文件查看
大文件合并容易卡死或丢失内容
Notepad++ 是内存驻留型编辑器,合并总大小超 200MB 的多个文件时,极大概率响应迟缓、假死,甚至崩溃后丢失未保存的合并结果。
这不是配置问题,是架构限制:它不支持流式读取或分块拼接,所有内容必须载入内存。
- 单个文件超过 50MB 就建议放弃 Notepad++ 合并,改用命令行:
copy /b file1.txt + file2.txt + file3.txt merged.txt(Windows)或cat file1.txt file2.txt file3.txt > merged.txt(Linux/macOS) - 如果必须用 Notepad++ 查看合并结果,先用命令行生成,再用它打开最终的
merged.txt - 不要尝试在 Notepad++ 中打开几十个 10MB 日志文件再点
连接文件——大概率白等两分钟然后弹出“内存不足”警告
合并后编码不一致会导致乱码
Notepad++ 对每个标签页单独记录编码(如 UTF-8、ANSI、GBK)。连接文件 不做编码转换,而是按各文件原始字节拼接。如果混用 ANSI 和 UTF-8,结果里会出现一堆 或错位字符。
尤其常见于从不同系统导出的文本(Windows 记事本默认 ANSI,Linux 终端默认 UTF-8)。
- 合并前,逐一检查每个标签页右下角显示的编码(如
UTF-8、ANSI),不一致就先统一:选中标签页 →编码 → 转为 UTF-8(推荐)或转为 UTF-8-BOM(兼容老旧 Windows 工具) - 注意:
转为 UTF-8是重新编码,不是“声明为”,会真正改变字节流;而以 UTF-8 格式编码是仅更改声明,可能导致乱码加重 - 如果某个文件本身就是 GBK 编码但被错误识别为 ANSI,需先用
编码 → 重新以 UTF-8 编码试错,或借助外部工具(如 iconv)转码后再导入
真正麻烦的不是操作步骤,而是合并前没人检查编码和文件大小——等卡住或乱码了才回头排查,反而更耗时。











