Com base na excelente resposta de @KeithPinson (desculpe, ainda não há pontos de reputação suficientes para comentar sua resposta), esta alternativa impedirá que o preenchimento automático copie qualquer coisa extra que possa estar dentro da tag html (por exemplo, classes, ids, etc. .) mas não deve ser copiado para a tag de fechamento.
ATUALIZAÇÃO Eu atualizei minha resposta para trabalhar com filename.html.erbarquivos.
Percebi que minha resposta original não funcionou em arquivos comumente usados em visualizações Rails, como some_file.html.erbquando eu estava usando ruby embutido (por exemplo <p>Year: <%= @year %><p>). O código abaixo irá trabalhar com .html.erbarquivos.
inoremap ><Tab> ><Esc>?<[a-z]<CR>lyiwo</<C-r>"><Esc>O
Uso de amostra
Tipo:
<div class="foo">[Tab]
Resultado:
<div class="foo">
|
<div>
onde |indica a posição do cursor
E como exemplo de adição da tag de fechamento embutida em vez do estilo de bloco:
inoremap ><Tab> ><Esc>?<[a-z]<CR>lyiwh/[^%]><CR>la</<C-r>"><Esc>F<i
Uso de amostra
Tipo:
<div class="foo">[Tab]
Resultado:
<div class="foo">|<div>
onde |indica a posição do cursor
É verdade que ambos os exemplos acima contam >[Tab]para sinalizar uma tag de fechamento (o que significa que você teria que escolher o estilo embutido ou bloco). Pessoalmente, eu uso o estilo de bloco com >[Tab]e o estilo embutido com >>.
Ctrl-_, mas isso torna a fonte pequena do meu terminal.