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 .`; #*/;
手动关闭评论。
但是有更好的方法吗?
感谢。
答案 0 :(得分:4)
您正在使用cindent
,这是专门针对自动注册C代码(包括C样式的块注释)。这并没有意识到你实际上在写perl。请尝试使用smartindent
,它似乎可以更好地与perl一起使用。要尝试此操作,请运行set cindent!
,然后set smartindent
。如果这样做效果更好,您可以在.vimrc文件中更改它。
如果您正在讨论缩进的 = 键,而不是即时缩进标记,则使用单独的格式化程序。您可以通过设置equalprg
来更改使用的内容。对于perl,您可以使用set equalprg=perltidy\ -quiet
通过perltidy
运行选定的行。