¿Hay alguna manera de mostrar las partes plegadas como un árbol?


10

El plegado es útil para ocultar partes del documento. Una representación visual de la estructura plegable como un árbol sería útil para comprender la estructura del documento de un vistazo.

Respuestas:


11

Puede usar :set foldcolumn=<number>para mostrar una <number>columna de ancho que intente visualizar los niveles de plegado. Se vería así, de forma predeterminada (con un método de plegado de marcador, usando {{{y }}}):

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

Sin embargo, esto consume una gran cantidad de bienes inmuebles horizontales. Otro método sería escribir una foldtext()implementación personalizada que lea el nivel de plegado foldlevel()y los formatos en consecuencia. Esto desperdiciará menos espacio horizontal, pero en realidad no será tan útil para comprender visualmente el árbol ya que no puede ver los pliegues debajo de un pliegue colapsado. Por ejemplo, su .vimrc:

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

Hay complementos que proporcionan visualizaciones a pedido de la jerarquía de plegado, como folddigest.vim , también. Funcionan, esencialmente, analizando el nivel de plegado de cada línea, construyendo una estructura de datos apropiada y volcando una visualización de la estructura de datos a un nuevo buffer. Probablemente podría adaptar la técnica a sus propias necesidades.

También es posible que desee ver los complementos que proporcionan "guías de sangría", como esta . Nunca los he usado personalmente, y escuché que causan problemas de rendimiento a algunas personas, ya que generalmente implican generar muchos aspectos destacados de coincidencias personalizadas a través de matchadd(), pero su kilometraje puede variar.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.