【发布时间】:2012-05-12 08:40:58
【问题描述】:
当我使用gg=G 重新缩进文件时,我注意到右括号或括号的缩进与开头的行不匹配。例如(使用 >... 显示的前导选项卡)
if settings.DEBUG:
>...urlpatterns += patterns('',
>...>...url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
>...>...>...'document_root': settings.MEDIA_ROOT,
>...>...}),
>...)
我想修正包含这个的文件中的缩进。对于 python,我将 softtabstop 设置为 4,shiftwidth 设置为 4 和 expandtab 设置。当我执行gg=G 时,结果如下:
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
'document_root': settings.MEDIA_ROOT,
}),
)
这里有两个问题。首先是右括号与其左括号的空白级别不匹配,它们缩进到与括号内的代码相同的级别。这在第二行中的( 和最后一行中的匹配) 以及第三行中的{ 和第五行中的匹配} 中都可以看到。我希望它使右括号与它们的左括号匹配在同一级别。
我的第二个问题是左括号后的缩进是新块的缩进的两倍,甚至是在左括号后缩进{。我在想这可能是 Python 文件类型缩进的一部分,但我想知道如何阻止它,所以所有缩进都是 4 宽。
【问题讨论】:
-
我偷偷怀疑你在这里玩了一些 cindent 规则。你用的是cindent吗?你能把你的整个 vimrc 粘贴到某个地方吗?
-
我的 ~/.vimrc 是 pastebin.ca/2149343 我的 ~/.vim/ftplugin/python.vim 中也有:
setlocal sts=4 sw=4 expandtab -
虽然我的主要目的是让我的python代码正常工作,但我想知道导致右括号与封闭块放在相同缩进上的当前配置在哪里,如我想在全球范围内进行更改。