0

我的文字遵循以下格式:

HEADER hello
...
...

HEADER neighbour
...
...
...

HEADER test1
HEADER test2

我想选择所有实例HEADER*\n并将它们复制到新文档中。因此,结果将如下所示:

HEADER hello
HEADER neighbour
HEADER test1
HEADER test2

是否保留空格并不重要。标准的emacs功能可以做到这一点吗?

4

3 回答 3

4

将整个文档复制到新文档,然后使用delete-non-matching-lines.

M-x delete-non-matching-lines<RET> ^HEADER<RET>
于 2013-09-04T02:49:20.190 回答
2

不是那么简单,但是您可以自己定义这样的函数。就像这里的一样:Emacs 复制匹配行

于 2013-09-04T02:43:21.863 回答
2

在缓冲区中,尝试

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

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

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

于 2013-09-04T19:19:06.477 回答