是折线? - 如何检查VIM中的折叠

alf*_*eza 7 vim function folding

我正在编写一些折叠函数,我需要检查当前行是否实际上是折叠.

这是因为它是一种自定义折叠方法,取决于搜索/匹配某些行.

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

-FOO------------------------
Run Code Online (Sandbox Code Playgroud)

如果您执行以下操作:

getline('.')
Run Code Online (Sandbox Code Playgroud)

你基本上会FOO这样得到(我知道)没有办法知道我是否处于弃牌状态.

这有辅助功能吗?

我认为它必须是这样的:

is_folded('.')
Run Code Online (Sandbox Code Playgroud)

我可能会搞砸foldtext为折叠指定一个特殊的标题,但我想避免这种情况.

Xav*_* T. 9

:help eval.txt

foldclosed({lnum}行)

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

您可以检查给定的行,如果它返回-1或行号,您可以通过isfolded()这种方式实现您的功能.

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