Как складывать / разворачивать HTML теги с Vim



есть ли какой-то плагин, чтобы сложить HTML-теги в Vim?

Или есть другой способ настроить ярлык для сворачивания или разворачивания HTML-тегов?

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

799   6  

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 исходный html:

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

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

js-beautify and vim fold

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

:setlocal foldmethod=manual

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

:setlocal foldmethod?

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

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

  1. установите свой метод сгиба, чтобы быть синтаксис со следующим:

    командная строка 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

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

Comments

    Ничего не найдено.