安装Vundle后,我的vim不再遵循我的expandtab设置.我的标签设置为2个空格,但现在在python文件中它不再这样做.这条线正在调用这个问题:
filetype plugin on
Run Code Online (Sandbox Code Playgroud)
这条线做什么(vundle要求)?另外,我该怎么做才能确保我的设置得到遵守?
谢谢!
VIMRC:pastebin.com/tGmfCi78
Joh*_*ter 24
问题是您的设置被文件类型插件覆盖,该插件是Vim的一部分.问题在于ftplugin/python.vim:
" As suggested by PEP8.
setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
在你的.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()
Run Code Online (Sandbox Code Playgroud)
后一位只允许您调用函数SetupPython而不是call SetupPython()在after文件中.
另一种方法是保留所有内容.vimrc,但是您使用VimEnter自动命令为python设置FileType自动命令以设置首选项.通过等待直到VimEnter触发,所有其他插件将有时间设置其自动命令,因此您的将被添加到列表的末尾.这允许您在python插件的FileType自动命令之后运行并设置您自己的设置.这有点乱,after/上面的机制是这样做的首选方式.
FWIW,我保留在一个SetupSource()函数中的许多常见设置,可以从许多不同的FileTypes中调用.然后我就SetupPython()打电话了SetupSource().这有助于保持特定功能更清洁并减少一些重复.如果有帮助,请查看我的vimfiles中的函数:https://github.com/jszakmeister/vimfiles/blob/master/vimrc#L5328
| 归档时间: |
|
| 查看次数: |
7034 次 |
| 最近记录: |