Notepad++中无“选两行自动合并”功能,本质是替换换行符;Ctrl+J最快但仅替换成空格且需预先选中含换行符的多行,正则替换更灵活但需正确匹配换行符类型(如\r\n、\n或\R),合并代码时须警惕语法破坏。

Notepad++ 里没有“选两行就自动合并”的专用功能,所谓“两行合并为一行”,本质是把换行符替换成空格、逗号或空字符串——关键不在行数,而在你能否准确匹配到那一个换行符。
Ctrl+J 快捷键只对选中区域生效,且强制加空格
按 Ctrl+J 是最快方式,但它不是“合并任意两行”,而是「把当前选中的所有换行符替换成单个空格」。
- 必须先用鼠标或
Shift+↑/↓选中至少两行(含中间换行符),光标停在某处直接按无效 - 它不管换行符类型(
\r\n还是\n),也不依赖正则,所以对临时整理最省心 - 分隔符固定为空格,不能改成逗号或删掉;如果两行本就带空格(比如缩进后换行),结果会出现多余空格
- 若选中范围内有空行(即连续
\r\n\r\n),Ctrl+J会变成两个空格,得后续手动去重
正则替换必须写对换行符,否则完全没反应
用 Ctrl+H → 勾选「正则表达式」模式,是最灵活的方式,但失败率高——90% 的问题出在换行符写错了。
-
\r\n只匹配 Windows 风格换行(CRLF),\n只匹配 Unix/Linux/macOS 风格(LF) - 粘贴自网页、终端或 Git 输出的文本,很可能混着
\n;而 Notepad++ 新建文件默认用\r\n - 查不到?先开「视图 → 显示符号 → 显示所有字符」,看行尾标的是
CRLF还是LF - 想一劳永逸?用
\R(PCRE 元字符,匹配任意换行),但需 Notepad++ ≥ 7.9(2026 年主流版本都支持)
合并代码时要小心语法破坏,别无脑删换行
把两行 JS 或 Python 合并,不只是删掉换行——缩进、冒号、花括号、分号都可能出问题。
- 例如 Python 中
if x:和下一行print(y)合并成if x: print(y)可行,但def f():和return 1合并后缺缩进就报错 - JS 中
function foo() {和return bar;合并后若漏空格,变成function foo(){return bar;}虽能运行,但可读性崩坏 - 推荐做法:先用
Ctrl+J试合并,再人工检查语法;或用正则限定上下文,比如只合并case.*?:开头的行
想只合并特定两行,就得靠正则边界锚定
全局替换会把所有换行都干掉,但真实需求常是「只合并不相邻的两行」「跳过注释行」「合并某段内的连续行」。
- 例如合并 switch case 中的两行:
case 1:和doA(); break;,可用查找case \d+:\s*\r\n(\s*.*?;),替换为case $1 - 避免跨行误匹配:用
[^\r\n]+替代.*,前者停在换行前,后者可能吞掉整段 - 需要保留原结构?比如把
- apple和- banana合成apple, banana,得先匹配- ([^\r\n]+)再替换,不能直接动换行符
真正麻烦的不是操作步骤,而是你得先判断:这两行之间到底是什么换行符、合并后是否影响语法、有没有隐藏空行或缩进。工具只是执行者,决定权在你手上。


















