我试图想出一个文本文档的TOC (目录):以# (hashtag) VIM开头的行将“收集”到缓冲区中,或者将它们放在文件的顶部。
(或者-删除一个重复文件中的所有行,而不是以#开头)
这个问题必须有解决办法..。
发布于 2019-08-13 15:26:44
我认为您正在寻找:global
命令。
您可以看到以#
开头的所有行,并使用:g/^#/p
命令将它们放入文件中:
:redir > toc.txt
:g/^#/p
:redir END
注意,如果您有toc.txt
,那么set number
将包含行号。在这个问题上也有这个职位。
或者,您可以删除不以#
开头的所有行( :v
或:g!
),并将其保存到另一个文件中。
:v/\#/d
:w! toc.txt | undo
:global
应用您为每个匹配行提供的命令,按照它们在文件中的出现顺序,因此:g/^#/t0
将把头复制到文件的顶部,但相反。我们可以通过:v/^#/m$
将所有非标头行移到末尾,将标题放在顶部,但从原始文本中剥离。另一种方法是放置一些标记来标记内容表的末尾,并复制标题行,在此标记上方一行:
:g/^#/t?end-toc?-1
https://stackoverflow.com/questions/57479910
复制相似问题