8

Vim 一直将我的 perl 代码视为注释,并且自动缩进不起作用。

$dump=`cp /local/*.txt .`;
if ($a == 0)
{
    if ($b == 0)
    {
        print "HELLO";
    }
}

被格式化为:

$dump=`cp /local/*.txt .`;
                  if ($a == 0)
                  {
                  if ($b == 0)
                  {
                  print "HELLO";
                  }
                  }

这是因为第一行中的 "/*" 被视为注释,因此 Vim 之后放弃了缩进。

我可以想到一个解决方法:

$dump=`cp /local/*.txt .`; #*/;

手动关闭评论。

但是有更好的方法吗?

谢谢。

4

1 回答 1

4

您正在使用cindent,它专门用于自动缩进 C 代码(包括 C 样式的块注释)。这并没有意识到您实际上正在编写 perl。尝试一下smartindent,它似乎与 perl 一起工作得更好。要尝试此操作,请运行set cindent!,然后set smartindent. 如果这样效果更好,您可以在 .vimrc 文件中更改它。

如果您正在谈论=缩进的键,而不是 ident-as-you-go 缩进,则使用单独的格式化程序。您可以通过设置更改使用的内容equalprgset equalprg=perltidy\ -quiet对于perl ,您可以使用perltidy.

于 2013-10-15T13:58:25.473 回答