【问题标题】:Combine two Emacs buffers?合并两个 Emacs 缓冲区?
【发布时间】:2023-03-06 18:16:02
【问题描述】:

给定两个单独的 emacs 缓冲区,我如何通过连接每个缓冲区的第一行,然后是第二行等来组合它们?例如,我可能需要在缓冲区 #1 中的每一行之后添加一个空格,这样我就不会以“a b1 2”结尾。

缓冲区 #1

一个 一个 c x

缓冲区#2

1 2 5 4 3 2

结果

乙 1 2 一个 c 5 4 c x 3 2

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    您应该可以使用rectangles 来执行此操作。只需复制缓冲区 2 的内容,然后将它们矩形拉出 (C-x r y) 到缓冲区 1,点在第一行中 'b' 右侧的一个空格。

    【讨论】:

      【解决方案2】:

      使用M-x 2C-associateM-x 2C-merge。您可能想使用C-h v 2C-windows-widthM-x 2C-shrink-window-horizontal.

      【讨论】:

      • 总有新的发现:)
      • 虽然问题中的简单示例使用矩形更容易处理,但2C-merge 具有相当大的优势,不需要您手动处理长行,这可能使其成为更可靠的答案。它还可以完全按照您希望的缓冲区缩小工作,这很棒。
      【解决方案3】:

      对于此类应用程序,我通常使用“paste”工具(虽然没有 Emacs..)。如果您使用的是 Linux,它应该默认可用。

      很简单:

      $ paste file1 file2 > file3
      

      这将按照您要求的方式将两个文件“file1”和“file2”合并到输出“file3”中。默认情况下,TAB 用作列分隔符,但这可以通过“-d”选项进行更改。

      【讨论】:

        【解决方案4】:

        如果您不介意在 emacs 之外进行合并,您可以保存这两个文件,然后使用 awk 将它们合并。

        看这个例子:http://www.linuxquestions.org/questions/linux-newbie-8/awk-question-331224/#post1682282

        【讨论】:

          猜你喜欢
          • 2016-04-26
          • 1970-01-01
          • 1970-01-01
          • 2013-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多