Предполагая, что вы работаете в Unix-подобной операционной системе ...
Достать Perltidy (настраиваемый код Perl индентора / форматированием). Затем обновите свой ~/.vimrc
файл, включив в него следующее:
filetype plugin indent on autocmd FileType perl setlocal equalprg=perltidy\ -st
Это позволит вам пометить любой блок кода Perl, который вы хотите, а затем переформатировать его, нажав =. Это предполагает, что perltidy
находится в вашем $PATH
, в противном случае просто укажите полный путь к исполняемому файлу.
По умолчанию perltidy
отформатирует ваш код как
if ( $a == 1 ) { &err_report("$a"); while ( $b != 1 ) { &err_ok(); } }
... но используя -i=2
( --indent-columns=2
) и -pt=2
( --paren-tightness=2
) (вы бы поместили эти опции в свой ~/.perltidyrc
файл, по одному на строку), вы получите
if ($a == 1) { &err_report("$a"); while ($b != 1) { &err_ok(); } }
Это в значительной степени то, что вы просили.
Если вам действительно не нужно места после while
, используйте -nsak=while
( --nospace-after-keyword=while
).