【问题标题】:How do I search and copy in emacs? [duplicate]如何在 emacs 中搜索和复制? [复制]
【发布时间】:2013-09-04 02:38:24
【问题描述】:

我的文字格式如下:

HEADER hello
...
...

HEADER neighbour
...
...
...

HEADER test1
HEADER test2

我想选择HEADER*\n 的所有实例并将它们复制到一个新文档中。所以,结果应该是这样的:

HEADER hello
HEADER neighbour
HEADER test1
HEADER test2

是否保留空格并不重要。这可以通过标准 emacs 功能实现吗?

【问题讨论】:

  • 肯定是重复的。 sdasdadas:如果您运行的是 Emacs 24,我刚刚发布了一个非常简单的对该问题的答案。

标签: emacs


【解决方案1】:

将整个文档复制到新文档中可能会更容易,然后使用delete-non-matching-lines

M-x delete-non-matching-lines<RET> ^HEADER<RET>

【讨论】:

    【解决方案2】:

    不是那么简单,但是你可以自己定义这样的函数。喜欢这里的那个:Emacs copy matching lines

    【讨论】:

      【解决方案3】:

      在缓冲区中,尝试

       C-u M-x occur RET ^HEADER.* RET
      

      它应该创建一个只包含您想要的输出的新缓冲区。然后,您可以切换到该缓冲区并将其保存为文件,或者使用C-x hM-w 对其进行标记,然后将其拉入新缓冲区或您需要的任何内容中。

      顺便说一句,这不是一个开箱即用的答案,但值得一提的是,有一个名为 all.el 的不错的库,它为 Emacs 提供了相当有用的“all”命令(如果我没记错)xedit(一个旧的大型机文本编辑器)。图书馆是here——你可能也喜欢这种东西。

      【讨论】:

        猜你喜欢
        • 2010-10-30
        • 2019-03-15
        • 2010-11-05
        • 1970-01-01
        • 2016-10-04
        • 1970-01-01
        • 1970-01-01
        • 2020-03-06
        • 2016-01-29
        相关资源
        最近更新 更多