Vim:为纯文本文件(不是Markdown)生成目录?

时间:2018-07-15 18:32:21

标签: vim tableofcontents

我知道vim-markdown-toc等Vim插件,但它们适用于降价文件。在Vim中是否有任何方法/建议可在纯文本文件(.txt,或无扩展名)中自动生成目录?例如,类似:

library(tidyverse)
df %>% arrange(A) %>%
  mutate(B = ifelse(A%%3==0,A%/%3,NA_integer_)) %>%
  fill(B, .direction = "up")

#     A B
# 1   1 1
# 2   1 1
# 3   1 1
# 4   1 1
# 5   2 1
# 6   2 1
# 7   2 1
# 8   2 1
# 9   3 1
# 10  3 1
# 11  3 1
# 12  3 1
# 13  4 2
# 14  4 2
# 15  4 2
# 16  4 2
# 17  5 2
#
#...so on

...其中(为方便起见)标题可以采用markdown语法:

CONTENTS

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

1 个答案:

答案 0 :(得分:3)

您可以使用类似的东西:

:g/^#* /t0

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

:0,4g/^/m0

(您可能需要在此处增加数字4,仅用于您的示例)。然后在可视行模式下选择行,并用制表符或空格替换#

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

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