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.erb
arquivos.
Percebi que minha resposta original não funcionou em arquivos comumente usados em visualizações Rails, como some_file.html.erb
quando eu estava usando ruby embutido (por exemplo <p>Year: <%= @year %><p>
). O código abaixo irá trabalhar com .html.erb
arquivos.
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.