在过去的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
也解决了这个问题。
答案 0 :(得分:2)
我有同样的问题。将以下行放在.vimrc
中修复它。
au FileType python set shiftwidth=4