为什么vim缩进我的Perl代码?

前端之家收集整理的这篇文章主要介绍了为什么vim缩进我的Perl代码?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Perl中有一个子程序,应该像这样缩进:
  1. sub GetFiles
  2. {
  3. my $pwd = shift;
  4. my @input = @_;
  5. my @returned;
  6.  
  7. my @DirectoryContent = &GetContentInformation(@input);
  8.  
  9. foreach (@DirectoryContent)
  10. {
  11. my %current = %{$_};
  12.  
  13. if ($current{'info'} =~ /<DIR>/)
  14. {
  15. my $RecurseDir = &GetRecurseDir($pwd,\%current);
  16. push(@returned,&GetFiles($RecurseDir,&GetDirectoryContents($RecurseDir)));
  17. }
  18. else
  19. {
  20. # clean up the data
  21. my $size = $current{'info'};
  22. # filesize will be in number of bytes
  23. # remove file separators
  24. #$size =~ s/,//g;
  25. my $extension = &GetFileExtension($current{'name'});
  26. delete($current{'info'});
  27. $current{'size'} = $size;
  28. $current{'extension'} = $extension;
  29. # push(@returned,\%current);
  30. }
  31. }
  32. @returned;
  33. }

但是当我按下子程序块的起始括号上的=%(是的,cindent打开)时,它会像下面那样缩进:

  1. sub GetFiles
  2. {
  3. my $pwd = shift;
  4. my @input = @_;
  5. my @returned;
  6.  
  7. my @DirectoryContent = &GetContentInformation(@input);
  8.  
  9. foreach (@DirectoryContent)
  10. {
  11. my %current = %{$_};
  12.  
  13. if ($current{'info'} =~ /<DIR>/)
  14. {
  15. my $RecurseDir = &GetRecurseDir($pwd,\%current);
  16. push(@returned,&GetDirectoryContents($RecurseDir)));
  17. }
  18. else
  19. {
  20. # clean up the data
  21. my $size = $current{'info'};
  22. # filesize will be in number of bytes
  23. # remove file separators
  24. #$size =~ s/,//g;
  25. my $extension = &GetFileExtension($current{'name'});
  26. delete($current{'info'});
  27. $current{'size'} = $size;
  28. $current{'extension'} = $extension;
  29. # push(@returned,\%current);
  30. }
  31. }
  32. @returned;
  33. }

为什么这样做?我该如何解决

编辑:应该注意我在Windows上使用gvim 7.3.

也许这是神奇的想法,但是…我曾经有过:
  1. filetype plugin on
  2. filetype indent on

在我的_vimrc中(在Windows XP上,自编译的gvim,各种版本),我会在Perl,LaTeX和HTML文件中得到各种有趣的缩进问题.

我现在有

  1. filetype indent on
  2. filetype plugin on

而且一切似乎都是笨拙的.因人而异.

另外,我强烈推荐Andy Lester’s vim-perl.

猜你在找的Bash相关文章