68

VimでHTMLタグを折りたたむためのプラグインはありますか?
または、htmlタグを折りたたんだり展開したりするためのショートカットを設定する別の方法がありますか?
インデントフォールディングと同じように、htmlタグをフォールド/アンフォールドしたいと思います。

4

6 に答える 6

93

私は、HTMLドキュメントで折りたたむのにうまく機能することを発見しましたzfat(または同様に)。既存の折り目を切り替え(開くまたは閉じる)します。現在のドキュメントのすべての折り目を開き、ドキュメントでマークされている既存のすべての折り目を効果的に再度有効にします。zfitzazRzM

フォールドを広範囲に使用していることに気付いた場合は、自分用に便利なキーバインドを作成できます。.vimrc.

于 2012-09-12T02:55:58.283 に答える
25

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.
于 2013-06-29T21:20:33.937 に答える
7

より単純なfoldmethod構文を使用してhtmlを折りたたむ。

この答えは、vimでのHTML構文の折りたたみに基づいています。著者は@IngoKarcatです。

  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
    
于 2016-07-09T05:51:20.170 に答える
4

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:

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

js-beautifyとvimfold:

js-beautifyとvimfold

于 2013-10-16T07:44:50.427 に答える
2

ジェームズライによる答えに追加します。最初はfoldmethod=syntaxなので、zfatは機能しません。解決策は、foldemethodを手動に設定することです

:setlocal foldmethod=manual

使用中のfoldmethodを確認するには、

:setlocal foldmethod?
于 2014-02-15T05:04:48.930 に答える
1

まず、開始タグを折りたたんでタグを展開しset foldmethod=syntaxてみてください。これは私のvimでうまく機能します。zfitzo

于 2017-10-03T13:03:44.187 に答える