在Vim中,如何避免将“/ *”视为注释

时间:2013-10-14 21:43:40

标签: perl vim comments indentation

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 .`; #*/;

手动关闭评论。

但是有更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:4)

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

如果您正在讨论缩进的 = 键,而不是即时缩进标记,则使用单独的格式化程序。您可以通过设置equalprg来更改使用的内容。对于perl,您可以使用set equalprg=perltidy\ -quiet通过perltidy运行选定的行。