형식이 잘못된 Perl 코드가 있습니다.
if ($a==1){
&err_report("$a");
while($b!=1){
&err_ok();
}
}
나는하고 싶다재포맷Vim에서요. 명령을 사용한 후 gg=G
코드 형식은 다음과 같습니다.
if ($a==1){
&err_report("$a");
while($b!=1){
&err_ok();
}
}
실제로 Vim에서 아래와 같이 형식을 지정하고 싶습니다.
if ($a==1){
&err_report("$a");
while($b!=1){
&err_ok();
}
}
어떻게 해야 하나요?
- 사용 후vim-펄, 자동 서식이 여전히 내가 원하는 대로 작동하지 않습니다.
답변1
Unix 계열 운영 체제를 사용한다고 가정하면...
잡아변덕스러운(상당히 사용자 정의 가능한 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
답변2
먼저 필요한 서식 옵션을 설정합니다 set cindent sw=2 expandtab
(예: C와 같은 들여쓰기 사용, 2개의 공백 들여쓰기, 탭 문자를 공백으로 확장). 그런 다음 전체 파일/버퍼를 들여씁니다.
답변3
Vim은 Perl 들여쓰기 플러그인과 함께 제공되며, :filetype indent on
시작 프로그램(예: vimrc)에 있는 한 Perl 파일 들여쓰기를 수행할 수 있습니다. 그러나 들여쓰기만 수행할 뿐 개행 문자를 추가하거나 제거하지는 않습니다.