Para recuar arquivos automaticamente ao salvar, adicione ao seu vimrc:
augroup autoindent
au!
autocmd BufWritePre * :normal migg=G`i
augroup End
Se desejar fazer isso apenas para determinados arquivos, como arquivos scss, você pode alterar o regex:
autocmd BufWritePre * :normal migg=G`i
Para
autocmd BufWritePre *.scss :normal migg=G`i
Como funciona:
autocmd BufWritePre
especifica que este é um comando a ser executado automaticamente antes de gravar o buffer no arquivo.*
corresponde aos arquivos para executar este comando automático. Se quisermos apenas arquivos de texto, use*.txt
, ou apenas arquivos html, use*.html
, etc.:normal
diz para executar o seguinte comando no modo normalmi
coloca uma marca na linha atual e a salva em “i”.gg
vai para o topo do arquivo=
é o comando de indentação, um movimento é necessário após o=
comandoG
diz ao=
comando para indentar automaticamente no final do arquivo- `
i
diz para ir para a marca armazenada emi
augroup
eau!
são para o bem prativos
Para ver mais sobre as marcas:
http://vim.wikia.com/wiki/Using_marks
Para ver mais sobre comandos automáticos:
http://vimdoc.sourceforge.net/htmldoc/autocmd.html
http://learnvimscriptthehardway.stevelosh.com/chapters/12.html
Para ver por que isso está agrupado em um grupo:
http://learnvimscriptthehardway.stevelosh.com/chapters/14.html