Existe uma maneira de reformatar o css usando macros vim ou outras ferramentas?

1

Eu tenho um arquivo css com linhas como esta:

.exhibit-page-nav {list-style:none; float: left; padding: 1em 0; width: 100%; border-top: 1px solid #c7b5a2;}

mas eu quero que seja assim:

.exhibit-page-nav {
    list-style:none; 
    float: left; 
    padding: 1em 0; 
    width: 100%; 
    border-top: 1px solid #c7b5a2;
}

Existe uma maneira de escrever uma macro vim para fazer isso?

    
por Jonathan 23.08.2012 / 18:38

1 resposta

3

@ o comentário de user137369 está correto, mas você pediu uma macro vim…

Uma macro não é necessária se você quiser apenas formatar esta linha única: basta uma simples substituição. Mas você pode ter que fazer o mesmo exercício novamente no futuro; Nesse caso, você pode querer gravá-lo como uma macro ou até salvá-lo como um comando ou um mapeamento.

Então ... digamos que você queira mantê-lo como uma macro:

qx              " start recording in register x
:s/[;\{]/
@x
\r/g " the substitution that does the formatting =i{ " indent the whole thing nicely q " stop recording

Depois disso, você pode aplicar a macro colocando o cursor em uma linha e clicando:

:'<,'>norm @x

A substituição significa "substituir qualquer ; ou { ( [;\{] ) por si próprio ( \r ) seguido por um retorno de carro ( :help :normal )".

Agora, suponha que você tenha um bloco de uma dúzia dessas linhas, aplicando sua macro a todas elas é tão simples quanto selecioná-las e digitar:

:g/;\}/norm @x

Veja ;} .

Se você tem muitas dessas linhas no arquivo e consegue identificar um padrão comum, digamos :global , outra opção (que eu gosto muito) seria usar o comando :help :global :

qx              " start recording in register x
:s/[;\{]/
@x
\r/g " the substitution that does the formatting =i{ " indent the whole thing nicely q " stop recording

Veja %code% .

    
por 23.08.2012 / 20:39