MacVim Python缩进问题

时间:2013-12-30 14:44:31

标签: python vim

在过去的6个小时里,我一直试图在我的MacVim设置中找到烦人的错误来源。由于下面详细说明的原因,我第一次打开Python文件时,从文件$VIMRUNTIME/ftplugin/python.vim正确设置了缩进,对我而言/usr/local/Cellar/macvim/7.4-72/MacVim.app/Contents/Resources/vim/runtime/ftplugin

然而,在每个后续的Python文件加载中,shiftwidth恢复为我在.vimrc中设置的全局默认值2。在追踪问题时,我终于在$VIMRUNTIME/ftpluin/python.vim文件中找到了这段代码:

if exists('*<SID>Python_jump') | finish | endif

fun! <SID>Python_jump(motion) range
    let cnt = v:count1
    let save = @/    " save last search pattern
    mark '
    while cnt > 0
        silent! exe a:motion
        let cnt = cnt - 1
    endwhile
    call histdel('/', -1)
    let @/ = save    " restore last search pattern
endfun

if has("gui_win32") && !exists("b:browsefilter")
    let b:browsefilter = "Python Files (*.py)\t*.py\n" .
                       \ "All Files (*.*)\t*.*\n"
endif

" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8

在第一次加载时,未定义<SID>Python_jump,因此将应用PEP8样式缩进设置。但是,在每次下载时,该功能都可用,因此永远不会应用shiftwidth设置。如果我注释掉if exists('*<SID>Python_jump') | finish | endif行,它会按预期工作,并且每次加载文件时都会正确设置缩进设置。

现在,我想知道的是,这是否也是其他人面临的真正问题;在这种情况下,我应该修复它并在MacVim仓库上打开一个拉取请求,或者我有其他错误吗?我试过禁用每个插件(我使用的是Vundle,所以我只是在我的Bundle中注释了他们的.vimrc行,但结果是一样的。

修改  正如krystah指出的那样,au FileType python set shiftwidth=4也解决了这个问题。

1 个答案:

答案 0 :(得分:2)

我有同样的问题。将以下行放在.vimrc中修复它。
au FileType python set shiftwidth=4