Чи існує спосіб відображення складених частин у вигляді дерева?


10

Розгортання корисно для приховування частин документа. Візуальне зображення складної структури як дерева було б корисно для розуміння структури документа з першого погляду.

Відповіді:


11

Ви можете використовувати :set foldcolumn=<number>для відображення <number>загально стовпця, який намагається візуалізувати рівні складки. За замовчуванням це виглядатиме приблизно так (методом складання маркера, використовуючи {{{та }}}):

-    {{{ 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(), але ваш пробіг може відрізнятися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.