Vim:为纯文本文件(不是 Markdown)生成 table 内容?

Vim: generate table of contents for plain text files (not Markdown)?

我知道 Vim 插件,例如 vim-markdown-toc 等,但它们适用于降价文件。 Vim 中的 plain-text 文件(.txt,或无扩展名)中是否有任何 approaches/suggestions for auto-generating 的目录?例如,类似于:

CONTENTS

  ∙ Executive Summary
  ∙ Technical Review
    ∙ Biomedical Natural Language Processing
  ∙ Preliminary Work

... 其中(为了方便)headers 可以采用降价语法:

# EXECUTIVE SUMMARY

Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...
...

# TECHNICAL REVIEW

Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...
...

##  BIOMEDICAL NATURAL LANGUAGE PROCESSING

Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...
...

# PROPOSED WORK

Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...

你可以使用类似的东西:

:g/^#* /t0

这会将所有这些行复制到顶部。不幸顺序错误,将其反转:

:0,4g/^/m0

(您可能需要在此处增加数字 4,这是为了您的示例)。然后 select 视觉行模式中的行,并将 # 替换为制表符或空格。

:'<,'>s/#/  /g

然后做一些格式化。您当然可以进一步自动化。