Notepad++中无“选两行自动合并”功能,本质是替换换行符;Ctrl+J最快但仅替换成空格且需预先选中含换行符的多行,正则替换更灵活但需正确匹配换行符类型(如rn、n或R),合并代码时须警惕语法破坏。
Notepad++ 里没有“选两行就自动合并”的专用功能,所谓“两行合并为一行”,本质是把换行符替换成空格、逗号或空字符串——关键不在行数,而在你能否准确匹配到那一个换行符。
按 Ctrl+J 是最快方式,但它不是“合并任意两行”,而是「把当前选中的所有换行符替换成单个空格」。
Shift+↑/↓ 选中至少两行(含中间换行符),光标停在某处直接按无效rn 还是 n),也不依赖正则,所以对临时整理最省心rnrn),Ctrl+J 会变成两个空格,得后续手动去重用 Ctrl+H → 勾选「正则表达式」模式,是最灵活的方式,但失败率高——90% 的问题出在换行符写错了。
rn 只匹配 Windows 风格换行(CRLF),n 只匹配 Unix/Linux/macOS 风格(LF)n;而 Notepad++ 新建文件默认用 rn
CRLF 还是 LF
R(PCRE 元字符,匹配任意换行),但需 Notepad++ ≥ 7.9(2026 年主流版本都支持)把两行 JS 或 Python 合并,不只是删掉换行——缩进、冒号、花括号、分号都可能出问题。
if x: 和下一行 print(y) 合并成 if x: print(y) 可行,但 def f(): 和 return 1 合并后缺缩进就报错function foo() { 和 return bar; 合并后若漏空格,变成 function foo(){return bar;} 虽能运行,但可读性崩坏Ctrl+J 试合并,再人工检查语法;或用正则限定上下文,比如只合并 case.*?: 开头的行全局替换会把所有换行都干掉,但真实需求常是「只合并不相邻的两行」「跳过注释行」「合并某段内的连续行」。
case 1: 和 doA(); break;,可用查找 case d+:s*rn(s*.*?;),替换为 case $1
[^rn]+ 替代 .*,前者停在换行前,后者可能吞掉整段- apple 和 - banana 合成 apple, banana,得先匹配 - ([^rn]+) 再替换,不能直接动换行符真正麻烦的不是操作步骤,而是你得先判断:这两行之间到底是什么换行符、合并后是否影响语法、有没有隐藏空行或缩进。工具只是执行者,决定权在你手上。