如何隐藏空行?

时间:2019-05-17 20:33:26

标签: vim folding code-folding

我以前使用位置列表(:lvimgrep)来显示缓冲区的内容,但是最近我发现折叠是一种有趣的选择。我正在使用foldmethod=exprfoldexpr=getline(v:lnum)=~'.'?1:0选项。所有非空行(也称为段落)都被折叠并由空行分隔。在这里您可以看到original文件和folded。与位置列表相比,此方法的优势在于它可以显示行数,并且不需要额外的缓冲区。但是,出于可读性考虑,最好删除折叠之间的空白行,但我不知道该怎么做。可以手动折叠,但是如果我们在foldexpr中包含空行,vim会将所有这些段落合并为一个折叠。如何分开? Here is的外观。

1 个答案:

答案 0 :(得分:2)

您可以像这样将空行作为上一段的一部分:

:set foldexpr=strlen(getline(v:lnum))==0?'=':strlen(getline(v:lnum-1))?1:'>1'

如果当前行为空,请使用前一行(=)的折叠级别。

否则,请检查上一行:如果为空,则必须是新段落的开头。使用>1创建一个新的1级折叠。否则,它必须是现有段落的一部分;为它指定折叠级别1