programing tip

Vim으로 HTML 태그를 접거나 펼치는 방법

itbloger 2020. 12. 30. 07:43
반응형

Vim으로 HTML 태그를 접거나 펼치는 방법


Vim에서 HTML 태그를 접을 수있는 플러그인이 있습니까?
아니면 html 태그를 접거나 펼치는 바로 가기를 설정하는 다른 방법이 있습니까?
들여 쓰기 접기와 마찬가지로 html 태그를 접거나 펼치고 싶습니다.


나는 HTML 문서를 접을 때 잘 작동 zfat한다는 것을 (또는 동등하게 zfit) 찾았습니다 . za기존 접기를 전환 (열기 또는 닫기)합니다. zR현재 문서의 모든 접기를 열고 문서에 zM표시된 기존의 모든 접기를 효과적으로 다시 활성화합니다.

접기를 광범위하게 사용하는 경우, 자신을 위해 편리한 키 바인딩을 만들 수 있습니다. .vimrc.


HTML을 들여 쓰면 다음이 작동합니다.

set foldmethod=indent

이것의 문제는 너무 많은 주름 이 있다는 것 입니다. 이 I 사용을 해결하기 위해 zOzc각각 열고 닫을 중첩 된 주름 할 수 있습니다.

자세한 내용은 다음 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 구문 접기를 기반으로 합니다 . 저자는 @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

    구문 접기는 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 orignal html :

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

js-beautify 및 vim fold :

js-beautify 및 vim fold


James Lai의 답변에 추가하십시오. 처음에는 foldmethod = syntax이므로 zfat가 작동하지 않습니다. 해결책은 foldemethod를 수동으로 설정하는 것입니다.

:setlocal foldmethod=manual

사용중인 foldmethod를 확인하려면

:setlocal foldmethod?

첫째로 set foldmethod=syntax시도 zfit시작 태그를 접어하고 zo펼쳐 태그에, 그것은 나의 정력에 잘 작동합니다.

참조 URL : https://stackoverflow.com/questions/7148270/how-to-fold-unfold-html-tags-with-vim

반응형