2011-02-01 92 views
6

我正在写一些折叠功能,我在一个点,我需要检查,如果当前行实际上是折叠。是折叠的吗? - 如何检查在VIM折叠

原因是这是一种自定义折叠方法,它依赖于搜索/匹配某些行。

例如,如果当前行折叠,看起来像:

-FOO------------------------ 

如果你做这样的事情:

getline('.') 

你会基本上得到FOO所以没有方法(我知道)知道我是否处于折叠状态。

是否有帮助功能?

我认为它必须是这样的:

is_folded('.') 

我或许可以乱用foldtext分配的折叠一个特殊的冠军,但我想避免这种情况。

回答

6

:help eval.txt

foldclosed({lnum}行)

结果是一个数。如果行{lnum}处于关闭的 折叠中,则结果是该折叠中的第一行的编号。 如果第{lnum}行不在关闭折叠中,则返回-1。

如果返回-1或行号,您可以检查给定的行,您可以用这种方式实现isfolded()函数。

如果您正在寻找Vim脚本功能或功能,最好从eval.txt开始搜索,其中包含大量相关信息。

+0

绝对正确。大多数时候,我都对VIM文档(:help foo)感到惊叹,但在这种情况下 - 我不知道如何搜索它),它很糟糕。感谢您及时的回复! – alfredodeza 2011-02-01 14:50:02