我的文字遵循以下格式:
HEADER hello
...
...
HEADER neighbour
...
...
...
HEADER test1
HEADER test2
我想选择HEADER*\n
的所有实例并将其复制到新文档中。所以,结果如下:
HEADER hello
HEADER neighbour
HEADER test1
HEADER test2
是否保留空格并不重要。这可以通过标准的emacs功能实现吗?
答案 0 :(得分:4)
将整个文档复制到新文档可能更容易,然后使用delete-non-matching-lines
。
M-x delete-non-matching-lines<RET> ^HEADER<RET>
答案 1 :(得分:2)
不是那么简单,但你可以自己定义这样的功能。就像这里的那个:Emacs copy matching lines
答案 2 :(得分:2)
在缓冲区中,尝试
C-u M-x occur RET ^HEADER.* RET
它应该只使用您想要的输出创建一个新的缓冲区。然后你可以切换到那个缓冲区并将其保存为文件,或者用C-x h
和M-w
标记它,然后把它放到一个新的缓冲区或任何你需要的地方。
顺便说一句,不是一个简单的开箱即用的答案,但是对于它的价值,有一个很好的库叫做all.el,它给Emacs提供了一个相当有用的“全部”命令(如果使用的话)我没记错)xedit(一个旧的大型机文本编辑器)。该库是here - 你可能也喜欢这种东西。