有没有办法将折叠的零件显示为树?


10

折叠对于隐藏文档的某些部分很有用。可视化地将折叠结构表示为树对于一眼理解文档结构将很有用。

Answers:


11

您可以:set foldcolumn=<number>用来显示<number>-wide列,以尝试可视化折叠级别。默认情况下,它将看起来像这样(使用标记折叠方法,使用{{{}}}):

-    {{{ Top Level Fold
|-   {{{ Nested Fold
||-  {{{ Deepest Fold
|||  }}}
||   }}}
|-   {{{ Another Nested Fold
||   }}}
|    }}}

但是,这消耗了大量的水平房地产。另一种方法是编写一个自定义foldtext()实现,该实现读取折叠级别foldlevel()并相应地设置格式。这将浪费较少的水平空间,但因为看不到折叠折叠下面的折叠,因此从视觉上理解树实际上并没有帮助。例如,您的.vimrc

set foldtext=CustomFoldText()
function! CustomFoldText()
  let line = getline(v:foldstart) . "..."
  return repeat("--| ", v:foldlevel) . line
endfunction

有些插件还提供按需显示的折叠层次结构可视化,例如folddigest.vim。本质上,它们通过解析每行的折叠级别,建立适当的数据结构并将数据结构的可视化内容转储到新的缓冲区中而工作。您可能可以根据自己的需要调整该技术。

您可能还需要查看提供“缩进指南”的插件,例如插件。我从来没有亲自使用过它们,我听说它们会引起一些人的性能问题,因为它们通常涉及通过生成许多自定义比赛精彩片段matchadd(),但是您的里程可能会有所不同。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.