安装Vundle后,我的
vim不再服从我的扩展名.我的标签设置为2个空格,但现在在
python文件中,它不再是这样.这个问题正在被这个线所调用:
filetype plugin on
这条线做什么(这是vundle要求的)?此外,我可以做些什么来确保我的设置被遵守?
谢谢!
VIMRC:pastebin.com/tGmfCi78
问题是您的设置被Vim的一部分的文件类型插件覆盖.问题在
原文链接:https://www.f2er.com/bash/385939.htmlftplugin/python.vim
:
" As suggested by PEP8. setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
默认情况下,python插件尝试将源代码设置为符合PEP8,因此它正在调整tabstop.您将需要这些插件提供的一些功能,但您可能需要设置自己的自动命令来修复任何不喜欢的内容.
有两种方法可以做到这一点.如果你有一个〜/ .vim文件夹,最简单的方法是添加〜/ .vim / after / ftplugin / python.vim文件:
" Here,you can set the setting directly,or call a command or function " to help you. We'll call a command,and then implement that command in " your top-level vimrc to help keep things in one place. SetupPython
在你的.vimrc中添加:
function! SetupPython() " Here,you can have the final say on what is set. So " fixup any settings you don't like. setlocal softtabstop=2 setlocal tabstop=2 setlocal shiftwidth=2 endfunction command! -bar SetupPython call SetupPython()
后一位只允许您将函数调用为SetupPython,而不是在after文件中调用SetupPython().
另一种方法是将所有内容保存在.vimrc中,但您可以使用VimEnter自动命令为python设置FileType自动命令来设置首选项.通过等待VimEnter被触发,所有其他插件将有时间设置自动命令,因此您的添加将被添加到列表的末尾.这允许您运行python插件的FileType自动命令并设置您自己的设置.这有点麻烦,上面的after /机制是这样做的首选方法.
FWIW,许多常见的设置,我保留在一个SetupSource()函数,从许多不同的FileTypes调用.那么我将有SetupPython()调用SetupSource().这有助于保持特定功能更清洁,减少一些重复.如果有帮助,请查看我的vimfiles中的功能:https://github.com/jszakmeister/vimfiles/blob/master/vimrc#L5328