MacVim Python缩进问题



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

然而,在随后的每次Python文件加载中,shiftwidth都恢复为全局默认值2,这是我在.vimrc中设置的。在追踪问题的过程中,我终于在$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*.pyn" .
 "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,所以我只是在.vimrc中注释掉了它们的Bundle行),但结果是一样的。

编辑正如krystah所指出的,au FileType python set shiftwidth=4也解决了这个问题。

我也有同样的问题。不过,在.vimrc中放入以下行可以修复它
au FileType python set shiftwidth=4

最新更新