Есть ли какой-нибудь плагин для сгибания HTML-тегов в Vim?
Или есть другой способ настроить ярлык, чтобы свернуть или развернуть html-теги?
Я хотел бы складывать/разворачивать html-теги так же, как и с отступом.
Как свернуть/развернуть HTML-теги с Vim
Ответ 1
Я нашел zfat
(или, в равной степени, zfit
), хорошо работает для складывания с HTML-документами. za
будет переключать (открывать или закрывать) существующую складку. zR
открывает все складки в текущем документе, zM
эффективно повторно включает все существующие складки, отмеченные в документе.
Если вы сильно используете складки, вы можете сделать несколько удобных клавиш для себя в своем .vimrc.
Ответ 2
Если вы отступаете от своего 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.
Ответ 3
Установите js-beautify команда (версия 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:
js-beautify и vim fold:
Ответ 4
Добавить ответ, чтобы ответить Джеймс Лай. Первоначально мой foldmethod = синтаксис, поэтому zfat не будет работать. Решение состоит в том, чтобы установить foldemethod на ручной
:setlocal foldmethod=manual
чтобы проверить, какой складной метод используется,
:setlocal foldmethod?
Ответ 5
Складной html с синтаксисом foldmethod, который проще.
Этот ответ основан на синтаксисе синтаксиса HTML в vim. автор - @Ingo Karcat.
-
установите ваш метод fold как синтаксис со следующим:
Командная строка vim
:set foldmethod=syntax
или установите значение в
~/.vim/after/ftplugin/html.vim
setlocal foldmethod=syntax
-
Также обратите внимание, что синтаксис по умолчанию script только сбрасывает многострочный тег, а не текст между тегом открытия и закрытия.
So, this gets folded: <div class="foo" id="bar" > And this doesn't <div> <b>text between here</b> </div>
-
Чтобы свернуть между тегами, вам нужно расширить синтаксис script, через следующее, лучшее место в
~/.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
Ответ 6
Сначала set foldmethod=syntax
и попробуйте zfit
сбросить начальный тег и zo
, чтобы разворачивать теги, он хорошо работает на моем vim.