Como obtenho o vim para recuar todas as tags HTML?

3

Eu estava usando o vim no Debian 7 para editar um documento HTML. Eu comecei a digitar: <HTML> Retornar

Após o retorno inicial, o cursor foi recuado em um nível, de modo que, quando digitei <head> e o restante do meu documento, ele apareceria assim:

<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Test page</title>
    </head>
    <body>
        <div>
            <p>This is a paragraph.</p>
        </div>
    </body>
</html>

O tag em cada linha foi simplesmente seguido por um Return e não pressiona a tecla Tab ou Space , e o vim formatou isso como Eu esperava. Além disso, ao digitar o </ inicial de uma tag de fechamento, o vim não exibiria essa linha para corresponder ao nível da tag de abertura correspondente.

Em seguida, digitando o mesmo documento no vim no Ubuntu 13.10, enquanto digito o mesmo documento da mesma maneira, obtenho os seguintes resultados:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Test page</title>
</head>
<body>
<div>
    <p>This is a paragraph.</p>
</div>
</body>
</html>

Observe que o recuo não é iniciado até a tag <p> e suponho que algum de seus elementos filhos secundários e secundários. Parece que versões posteriores do estilo de recuo de HTML optaram por não identificar tags como html, head, body, etc. (?), Para legibilidade.

Eu não gosto do fato de que o vim não recua todas as tags. O que posso fazer para mudar isso?

Eu tentei olhar os arquivos de recuo para as diferentes versões, mas não consegui descobrir se poderia fazer algo lá. pastebins:

Estou usando as seguintes versões do vim:

  • Debian 7: "Vi IMproved 7.3 (2010 15 de agosto, compilado em 10 de fevereiro de 2013 02:27:59)"
  • Ubuntu 13.10: "Vi IMproved 7.4 (2013 10 de agosto, compilado em 12 de agosto de 2013 00:28:05)"
por Victor 18.12.2013 / 15:38

1 resposta

9

Verifique se você tem o vim completo instalado:

sudo apt-get install vim

Em seguida, crie um arquivo chamado ~/.vimrc com o seguinte conteúdo:

filetype plugin indent on

Então deve funcionar.

UPDATE ( fonte da atualização)

Na versão 7.4, o arquivo de recuo foi alterado, isso é o que causa problemas. O novo recuo não recua a cada tag html, mas você pode especificar quais tags recuar usando:

:let g:html_indent_inctags = "html,body,head,tbody"

no vim, ou sem o : em ~/.vimrc como sempre. (Claro, coloque as tags na lista que você quer que sejam marcadas.)

Ou você pode simplesmente voltar a versão antiga do arquivo de indent no lugar do mais novo. Em 12.04, o arquivo de recuo antigo está localizado em /usr/share/vim/vim73/indent/html.vim , portanto, acho que para a versão 7.4, o arquivo está localizado em /usr/share/vim/vim74/indent/html.vim . Ou para substituí-lo apenas pelo seu usuário e mantê-lo protegido de atualizações, coloque-o em ~/.vim/indent/html.vim

    
por falconer 19.12.2013 / 01:47

Tags