【问题标题】:How to hide empty lines?如何隐藏空行?
【发布时间】:2019-10-05 04:30:04
【问题描述】:

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

【问题讨论】:

  • 我应该如何从图像中复制/粘贴文本?
  • 不代表被抄袭。我想我应该贴很多文字来表达这个想法,然后我意识到图像会更具代表性。也许我应该只发布几行用空行分隔的...我的错。

标签: vim folding code-folding


【解决方案1】:

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

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

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

否则,检查前一行:如果它是空的,这必须是一个新段落的开始。使用>1 创建一个新的 1 级折叠。否则,这必须是现有段落的一部分;为其分配折叠级别1

【讨论】:

  • 这行得通,谢谢。我认为这是不可能自动完成的,因为我试图返回不同的值(1、2、...)。
猜你喜欢
  • 2016-02-13
  • 2016-05-13
  • 1970-01-01
  • 1970-01-01
  • 2023-02-14
  • 2012-10-28
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
相关资源
最近更新 更多