如何报告Vim中每个折叠的第一行?

时间:2012-06-13 19:45:23

标签: vim

我以为

:folddoc execute v:foldstart."p"

会起作用,但它只会重复返回折叠的一个的第一行。

感谢。

1 个答案:

答案 0 :(得分:3)

可以使用foldclosed()检测闭合折叠的第一行 功能。对于闭合折叠中给定数量的线,它返回数字 该折叠中的第一行(否则返回-1)。如果是行号 等于该数字的foldclosed()的值,则此行为 折叠的第一行。在Vim脚本中,此测试可以写为

foldclosed('.') == line('.')

因此,要打印第一行闭合折叠,可以使用命令

:folddoc if foldclosed('.') == line('.') | # | endif

:folddoc exe'#'[foldclosed('.')!=line('.')]

(显示行号时使用:p命令而不是:#命令 不相关的。)