在Emacs中将2000行连接为1行

在Emacs中将2000行连接为1行,emacs,Emacs,我有2000行代码需要连接,希望可以连接到 一个 我知道在Emacs中,通过replace string命令,我可以添加 +用于在每行后面进行串联,一次完成。但我 当我这样做的时候,当我使用这个文件时,我经常会得到一个语法错误 关于圣人。所以我开始做实验,发现如果我把它们都移走 在同一行上加上+符号,它就可以工作了。 将它们放在一条线上的最佳解决方案是什么 这可能是因为我在每行的括号中都有括号。在这里 以下是我的输出中的三行示例: [[['37a1', 1], 153, 160, [[13, 2

我有2000行代码需要连接,希望可以连接到 一个

我知道在Emacs中,通过
replace string
命令,我可以添加
+
用于在每行后面进行串联,一次完成。但我 当我这样做的时候,当我使用这个文件时,我经常会得到一个语法错误 关于圣人。所以我开始做实验,发现如果我把它们都移走 在同一行上加上
+
符号,它就可以工作了。 将它们放在一条线上的最佳解决方案是什么

这可能是因为我在每行的括号中都有括号。在这里 以下是我的输出中的三行示例:

[[['37a1', 1], 153, 160, [[13, 2], [53, -1], [67, 2], [127, -1], [443, -1], [547, 2], [599, -1]]], [['43a1', 1], 159, 163, [[5, -1], [103, -1], [127, -1], [541, -1]]], [['53a1', 1], 159, 161, [[71, -1], [97, -1]]], [['57a1', 1], 155, 157, [[5, 2], [11, -1]]], [['58a1', 1], 152, 157, [[31, 2], [53, -1], [109, -1], [673, -1], [739, -1]]], [['61a1', 1], 157, 161, [[7, -1], [13, -1], [71, 2], [113, -1]]], [['65a1', 1], 159, 160, [[43, 2]]], [['77a1', 1], 155, 160, [[5, 2], [31, -1], [71, -1], [179, -1], [223, -1]]], [['79a1', 1], 156, 159, [[41, 2], [83, 2], [131, 2]]], [['82a1', 1], 150, 154, [[5, 2], [229, 2], [283, 2], [499, 2]]]]
[[['112a1', 1], 155, 156, [[5, -1]]], [['117a1', 1], 155, 157, [[11, 2], [523, 2]]], [['118a1', 1], 158, 161, [[127, -1], [251, -1], [277, -1]]], [['121b1', 1], 82, 82, []], [['122a1', 1], 151, 158, [[5, -1], [43, 2], [79, -1], [113, -1], [191, -1], [241, 2], [523, -1]]], [['123a1', 1], 157, 159, [[5, 0], [7, 2]]], [['123b1', 1], 156, 159, [[17, 2], [29, -1], [811, -1]]], [['124a1', 1], 155, 155, []], [['128a1', 1], 161, 162, [[13, 2]]], [['129a1', 1], 160, 163, [[283, -1], [563, -1], [659, -1]]]]
[[['130a1', 1], 158, 159, [[43, 2]]], [['131a1', 1], 161, 163, [[59, 0], [271, -1]]], [['135a1', 1], 151, 158, [[19, -1], [53, 2], [151, -1], [241, -1], [421, -1], [607, -1], [613, -1]]], [['136a1', 1], 160, 161, [[5, 2]]], [['138a1', 1], 155, 157, [[11, 2], [313, 2]]], [['141a1', 1], 154, 159, [[7, 0], [29, -1], [37, -1], [97, -1], [557, -1]]], [['141d1', 1], 159, 161, [[37, -1], [619, -1]]], [['142a1', 1], 152, 157, [[5, -1], [13, -1], [131, -1], [233, 2], [907, 2]]], [['142b1', 1], 158, 160, [[31, 0], [911, -1]]], [['143a1', 1], 155, 159, [[7, 2], [29, 2], [113, -1], [509, 2]]]]
所以我想要的是

A = B + C + D + ... = [a, b, c, ...] + [d, e, f, ...] + ...
在哪里

是此类条目的一个示例,
a
B
C
D

第1行、第2行和第3行的条目(我有2000行这样的条目)。

有很多方法可以做到这一点,但一个简单的方法是键盘宏

移到第一行。使用
C-x(
启动键盘宏

然后
C-e C-k
将下一行连接到当前行

现在
C-x)
结束键盘宏

现在,您可以随心所欲地运行它:
M-1000 C-x e


如果你想更容易地限制缓冲区,你可以将缓冲区缩小到你想要操作的区域。

有很多方法可以做到这一点,但一个简单的方法是键盘宏

移到第一行。使用
C-x(
启动键盘宏

然后
C-e C-k
将下一行连接到当前行

现在
C-x)
结束键盘宏

现在,您可以随心所欲地运行它:
M-1000 C-x e

如果您想更容易地限制缓冲区,可以将缓冲区缩小到您想要操作的区域。

A
B
C

您可以将行尾替换为+:

M-x替换-stringRETC-q C-jRET+RET

…然后根据需要手动修复结果单行的开始和结束,以满足正确SAGE语句的需要。

A
B
C

您可以将行尾替换为+:

M-x替换-stringRETC-q C-jRET+RET


…然后根据需要手动修复结果单行的开头和结尾,以满足正确SAGE语句的需要。

我对SAGE不是很熟悉,但它是基于Python的,对吗?有效的Python语法将围绕整个表达式进行排列。然后你可以有一个多行表达式。我不太熟悉Sage,但它是基于Python的,对吗?有效的Python语法将围绕整个表达式进行排列。然后你可以有一个多行表达式,我已经做过了。显然,我还需要在“+”之后添加“\”,这将产生类似于
A++\B++\C
的结果。你是说这就是Sage的要求吗?我已经做到了。显然,我还需要在“+”之后添加“\”,这将产生类似于
A++\B++\C
的结果。你是说这就是圣人的要求吗?
A+B+C