Fiquei me perguntando qual é a melhor maneira de usar dobrar sintaxe para arquivos HTML. Especialmente se conseguir reconhecer o código javascript nas <script>
tags.
Eu digitei, set foldmethod=syntax
mas não parece dobrar. Tenho que adicionar outra coisa ao meu .vimrc?
Conheço javascript, por exemplo, preciso adicionar, let javaScript_fold=1
mas não tenho certeza se tenho que adicionar algo semelhante ao HTML.
Obrigado!
folding
filetype-html
Sergio
fonte
fonte
Respostas:
A
'foldmethod'
é uma opção local da janela; defini-lo a partir do seu~/.vimrc
não necessariamente tem o efeito certo.Como o dobramento de sintaxe está vinculado ao
html
tipo de arquivo , essas configurações pertencem a~/.vim/after/ftplugin/html.vim
:Isso depende de ter
filetype plugin on
no seu~/.vimrc
, o que você provavelmente tem. Você também pode configurar outras opções relacionadas, por exemplofoldcolumn=4
.Observe também que, até o momento (no Vim 7.4.1830), o script de sintaxe HTML padrão apenas dobra uma marca de várias linhas, não o texto entre a marca de abertura e fechamento .
Então, isso é dobrado:
Mas isso não acontece:
Para conseguir isso, você precisa estender o script de sintaxe, por exemplo, através do seguinte, melhor colocado
~/.vim/after/syntax/html.vim
:Alternativa 1
A dobragem é realizada entre todos os elementos html, exceto nulos (aqueles que não têm um irmão de fechamento, como
<br>
). Contribuição de @zanona; obrigado!Alternativa 2
A dobragem é realizada entre determinadas tags HTML estruturais (por exemplo
<head>
), de nível de parágrafo (por exemplo<p>
,<li>
) e auxiliares (por exemplo<script>
) explicitamente nomeadas .fonte
expr
método personalizado que eu uso, no entanto, que desabilitado dobrar sintaxe para css e javascript. Ao usarsyntax
javascript e css, tem dobras conforme o esperado, mas nenhuma das tags HTML possui? Alguma ideia?fold
nela.