Vim 如何隐藏空行?
我曾经使用位置列表(:lvimgrep)来显示缓冲区的内容,但最近我发现折叠是一种有趣的替代方法。我使用的是Vim 如何隐藏空行?,vim,folding,code-folding,Vim,Folding,Code Folding,我曾经使用位置列表(:lvimgrep)来显示缓冲区的内容,但最近我发现折叠是一种有趣的替代方法。我使用的是foldmethod=expr和foldexpr=getline(v:lnum)=~'。?1:0选项。所有非空行(又称段落)均折叠并用空行分隔。在这里您可以看到文件和。与位置列表相比,它的优点是显示了行的数量,并且不需要额外的缓冲区。然而,为了可读性,最好删除折叠之间的空白行,我不知道怎么做。手动折叠是可能的,但如果我们在foldexpr中包含空行,vim将把所有这些段落合并为一个折叠。如
foldmethod=expr
和foldexpr=getline(v:lnum)=~'。?1:0
选项。所有非空行(又称段落)均折叠并用空行分隔。在这里您可以看到文件和。与位置列表相比,它的优点是显示了行的数量,并且不需要额外的缓冲区。然而,为了可读性,最好删除折叠之间的空白行,我不知道怎么做。手动折叠是可能的,但如果我们在foldexpr
中包含空行,vim将把所有这些段落合并为一个折叠。如何将它们分开?它应该是什么样子。您可以像这样将空行作为前一段的一部分:
:set foldexpr=strlen(getline(v:lnum))==0?'=':strlen(getline(v:lnum-1))?1:'>1'
如果当前行为空,请使用上一行的折叠级别(=
)
否则,检查前一行:如果为空,则必须是新段落的开头。使用
>1
创建新的1级折叠。否则,这必须是现有段落的一部分;将其指定为折叠级别1
如何从图像复制/粘贴文本?它并不意味着要复制。我想我应该贴很多文字来表达我的想法,然后我意识到图像会更具代表性。也许我应该只贴几行空白行。。。我的错,这很有效,谢谢。我认为这是不可能自动完成的,因为我试图返回不同的值(1,2,…)。