Eu uso um utilitário que escrevi em C chamado autotab
. Ele analisa as primeiras milhares de linhas de um arquivo que você carrega e determina valores para os parâmetros do Vim shiftwidth
, tabstop
e expandtab
.
Isso é compilado usando, por exemplo gcc -O autotab.c -o autotab
,. As instruções para integração com o Vim estão no cabeçalho do comentário na parte superior.
O Autotab é bastante inteligente, mas pode ser confundido de tempos em tempos, em particular por ter sido mantido de maneira inconsistente usando diferentes estilos de indentação.
Se um arquivo evidentemente usar guias, ou uma combinação de guias e espaços, para recuo, a Autotab descobrirá qual tamanho de guia está sendo usado considerando fatores como o alinhamento de elementos internos em linhas sucessivas, como comentários.
Ele funciona para uma variedade de linguagens de programação e perdoa elementos "fora da banda" que não obedecem a incrementos de indentação, como diretivas de pré-processamento C, rótulos de instrução C, sem mencionar as linhas em branco óbvias.