1

我以为

:folddoc execute v:foldstart."p"

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

谢谢。

4

1 回答 1

3

可以使用该foldclosed() 函数检测闭合折叠的第一行。对于闭合折叠内的给定行号,它返回折叠开始的行号;否则,它返回 -1。显然,如果一行的编号等于该foldclosed() 编号的值,则该行是折叠中的第一行。在 Vimscript 中,这个测试可以写成

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

因此,要打印所有闭合折叠的第一行,可以使用以下命令:

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

( 当不需要显示行号时,使用:p 命令而不是命令。):#

于 2012-06-14T04:45:44.783 回答