加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 18:39:52 所属栏目:安全 来源:网络整理
导读:安装Vundle后,我的 vim不再服从我的扩展名.我的标签设置为2个空格,但现在在 python文件中,它不再是这样.这个问题正在被这个线所调用: filetype plugin on 这条线做什么(这是vundle要求的)?此外,我可以做些什么来确保我的设置被遵守? 谢谢! VIMRC:pasteb
安装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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读