Как сложить / развернуть HTML-теги с помощью Vim

есть ли плагин для складывания HTML-тегов в Vim?
Или есть другой способ настроить ярлык для сворачивания или разворачивания html-тегов?
Я хотел бы сложить / развернуть HTML-теги так же, как я делаю со складыванием отступов.

6 ответов


Я нашел zfat (или, в равной степени, zfit) хорошо работает для сворачивания с HTML-документами. za переключит (откроет или закроет) существующую складку. zR открывает все складки в текущем документе,zM эффективно повторно включает все существующие складки, отмеченные в документе.

если вы обнаружите, что широко используете складки, вы можете сделать некоторые удобные привязки для себя в своем .vimrc.


если вы отступаете в HTML, должно работать следующее:

set foldmethod=indent

проблема с этим, я нахожу, есть слишком много складки. Чтобы обойти это, я использую zO и zc для открытия и закрытия вложенных складок соответственно.

посмотреть help fold-indent дополнительные сведения:

The folds are automatically defined by the indent of the lines.

The foldlevel is computed from the indent of the line, divided by the
'shiftwidth' (rounded down).  A sequence of lines with the same or higher fold
level form a fold, with the lines with a higher level forming a nested fold.

The nesting of folds is limited with 'foldnestmax'.

Some lines are ignored and get the fold level of the line above or below it,
whichever is lower.  These are empty or white lines and lines starting
with a character in 'foldignore'.  White space is skipped before checking for
characters in 'foldignore'.  For C use "#" to ignore preprocessor lines.

When you want to ignore lines in another way, use the 'expr' method.  The
indent() function can be used in 'foldexpr' to get the indent of a line.

установить js-украсить команда (версия JavaScript)

npm -g install js-beautify  
wget --no-check-certificate https://www.google.com.hk/ -O google.index.html  
js-beautify -f google.index.html  -o google.index.bt.html  

http://www.google.com.hk orignal html:

http://www.google.com.hk orignal

js-украсить и vim раза:

js-beautify and vim fold


добавить к ответу Джеймса лая. Первоначально мой foldmethod=синтаксис, поэтому zfat не будет работать. Решение установить foldemethod к руководству

:setlocal foldmethod=manual

чтобы проверить, какой foldmethod используется,

:setlocal foldmethod?

складной html с синтаксисом foldmethod, который проще.

этот ответ основан на синтаксис HTML складывается в vim. автор - @Ingo Karcat.

  1. установите метод fold в синтаксис со следующим:

    командная строка vim :set foldmethod=syntax

    или поставить параметр ~/.vim/after/ftplugin/html.vim

    setlocal foldmethod=syntax
    
  2. Также обратите внимание, что до сих пор синтаксический скрипт по умолчанию складывает только многострочный тег сам по себе, а не текст между открывающим и закрывающим тегом.

        So, this gets folded:
    
            <div
                class="foo"
                id="bar"
            > 
    
        And this doesn't
    
            <div>
                <b>text between here</b>
            </div>
    
  3. чтобы сложить между тегами, вам нужно расширить синтаксический скрипт, через следующее, лучшее место в ~/.vim/after/syntax/html.vim

    складывание синтаксиса выполняется между всеми, кроме void html-элементов (те, у которых нет заключительного брата, например <br>)

    syntax region htmlFold start="<\z(\<\(area\|base\|br\|col\|command\|embed\|hr\|img\|input\|keygen\|link\|meta\|para\|source\|track\|wbr\>\)\@![a-z-]\+\>\)\%(\_s*\_[^/]\?>\|\_s\_[^>]*\_[^>/]>\)" end="</\z1\_s*>" fold transparent keepend extend containedin=htmlHead,htmlH\d
    

во-первых set foldmethod=syntax и zfit сложить начальный тег и zo чтобы развернуть теги, он хорошо работает на моем vim.