Supondo que você esteja em um sistema operacional semelhante ao Unix ...
Obtenha o perltidy (um indentizador / formatador de código Perl altamente personalizável). Em seguida, atualize seu arquivo ~/.vimrc
para incluir o seguinte:
filetype plugin indent on
autocmd FileType perl setlocal equalprg=perltidy\ -st
Isso permitirá que você marque qualquer bloco de código Perl desejado e, em seguida, reformate-o pressionando = . Isso pressupõe que perltidy
seja encontrado em seu $PATH
, caso contrário, basta especificar o caminho completo para o executável.
Por padrão, perltidy
formatará seu código como
if ( $a == 1 ) {
&err_report("$a");
while ( $b != 1 ) {
&err_ok();
}
}
... mas usando -i=2
( --indent-columns=2
) e -pt=2
( --paren-tightness=2
) (você colocaria essas opções no seu arquivo ~/.perltidyrc
, uma por linha) você obtém
if ($a == 1) {
&err_report("$a");
while ($b != 1) {
&err_ok();
}
}
Isso é basicamente o que você pediu.
Se você realmente não deve ter espaço após while
, use -nsak=while
( --nospace-after-keyword=while
).