VimでHTMLタグを折りたたむためのプラグインはありますか?
または、htmlタグを折りたたんだり展開したりするためのショートカットを設定する別の方法がありますか?
インデントフォールディングと同じように、htmlタグをフォールド/アンフォールドしたいと思います。
6 に答える
私は、HTMLドキュメントで折りたたむのにうまく機能することを発見しましたzfat
(または同様に)。既存の折り目を切り替え(開くまたは閉じる)します。現在のドキュメントのすべての折り目を開き、ドキュメントでマークされている既存のすべての折り目を効果的に再度有効にします。zfit
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.
より単純なfoldmethod構文を使用してhtmlを折りたたむ。
この答えは、vimでのHTML構文の折りたたみに基づいています。著者は@IngoKarcatです。
foldメソッドを次の構文に設定します。
vimコマンドライン
:set foldmethod=syntax
または設定を入れます
~/.vim/after/ftplugin/html.vim
setlocal foldmethod=syntax
また、これまでのところ、デフォルトの構文スクリプトは、開始タグと終了タグの間のテキストではなく、複数行のタグ自体のみを折りたたむことに注意してください。
So, this gets folded: <div class="foo" id="bar" > And this doesn't <div> <b>text between here</b> </div>
タグ間で折りたたむには、構文スクリプトを次のように拡張する必要があります。
~/.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
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元のhtml:
js-beautifyとvimfold:
ジェームズライによる答えに追加します。最初はfoldmethod=syntaxなので、zfatは機能しません。解決策は、foldemethodを手動に設定することです
:setlocal foldmethod=manual
使用中のfoldmethodを確認するには、
:setlocal foldmethod?
まず、開始タグを折りたたんでタグを展開しset foldmethod=syntax
てみてください。これは私のvimでうまく機能します。zfit
zo