Alterar opções de autoindent no VIM

3

Por padrão, o Vim parece não querer recuar o conteúdo dentro de <li> tags, embora ele seja autoindent corretamente para a maioria das outras tags HTML.

Por exemplo, se eu começar com este código:

<ul>
<li>
foo
</li>
<li>
bar
</li>
</ul>

e tenho autoindent vim eu recebo:

<ul>
  <li>
  foo
  </li>
  <li>
  bar
  </li>
</ul>

No entanto, o que eu realmente quero é isso:

<ul>
  <li>
    foo
  </li>
  <li>
    bar
  </li>
</ul>

É meio chato escrever um novo código para que ele seja autoindent após a maioria das tags de abertura, mas não este, apesar de ser fácil o suficiente para contornar. Para mim, é muito importante usar o vim para autoformatar um grande HTML gerado com o qual estou tentando brincar (tentando fazer algumas alterações na interface do usuário usando a fonte gerada).

Existe alguma maneira fácil de alterar esse comportamento de autoindent para que ele trate <li> como qualquer outra tag de abertura e indente o conteúdo?

    
por Herms 13.07.2011 / 21:40

2 respostas

6

Não vejo uma maneira fácil de fazer isso, mas essa solução não é muito difícil.

  1. Copie $ VIMRUNTIME / indent / html.vim para ~ / .vim / indent / html.vim se estiver no Unix ou em ~ / vimfiles / indent / html.vim se estiver no Windows.
  2. Edite sua cópia do recuo / html.vim, adicionando esta linha,

    call <SID>HtmlIndentPush('li')

    à lista de chamadas semelhantes já existentes nesse arquivo.

Isso deve ser feito.

    
por 13.07.2011 / 22:35
2

Se alguém mais encontrar essa pergunta como eu fiz, via google, há outra solução usando rag-tag de Tim Pope extensão. Isso adicionará automaticamente os recuos corretos e atualizará algumas outras tags para HTML5.

    
por 05.12.2011 / 08:14