有没有办法修复vim没有注意到有注释的python if语句?

有没有办法修复vim没有注意到有注释的python if语句?,python,vim,Python,Vim,考虑下面的代码块- if (1==1):#Go forever print "Wooo." 由于注释,Vim没有看到:,因此它坚持打印应该与“if”处于相同的缩进级别 使用 任何想法都将不胜感激。请在.vim文件中找到: " If the previous line ended with a colon, indent relative to " statement start. if pline =~ ':\s*$' 把它改成 " If the previous line ende

考虑下面的代码块-

if (1==1):#Go forever
    print "Wooo."
由于注释,Vim没有看到:,因此它坚持打印应该与“if”处于相同的缩进级别

使用


任何想法都将不胜感激。

请在.vim文件中找到:

" If the previous line ended with a colon, indent relative to
" statement start.
if pline =~ ':\s*$'
把它改成

" If the previous line ended with a colon, indent relative to
" statement start.
if pline =~ ':\s*\(#.*\)\?$'

这将使它也匹配以冒号结尾的行,后跟一条注释。

从我记事起,我就有过同样的问题。我的解决方案。。。我不是这样评论的。只是澄清一下:您使用2005年的一个脚本,它声称使缩进更接近PEP想要的缩进,因为您对vim缩进python代码的方式不满意(顺便说一句,它将您提供的示例缩进得恰到好处)?公平地说,vim 7.2中的indent/python.vim文件根据其头从2006年开始。Vim还需要一些反斜杠:
如果pline=~':\s*\%(#。*\\)\?$”