为什么vim不服从我的扩展在python文件?

安装Vundle后,我的 vim不再服从我的扩展名.我的标签设置为2个空格,但现在在 python文件中,它不再是这样.这个问题正在被这个线所调用
filetype plugin on

这条线做什么(这是vundle要求的)?此外,我可以做些什么来确保我的设置被遵守?

谢谢!

VIMRC:pastebin.com/tGmfCi78

问题是您的设置被Vim的一部分的文件类型插件覆盖.问题在 ftplugin/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

相关文章

解决方案:解决linux下vim乱码的情况:(修改vimrc的内容)全...
Linuxvi/vim所有的UnixLike系统都会内建vi文书编辑器,其他的...
      vim正则匹配:空行:/^$/  /^[\t]*$/注释...
$select-editorSelectaneditor.Tochangelater,run'sele...
上次手贱忘了保存,这次就简单做个备忘吧,把踩过的坑记一下...
Linux之文本编译器小结vim的优势所有的UNIX-LIKE习通都会内置...