如何排查Vim对Python文件应用非预期配置的原因?
哈哈,我太懂这种刚整理完.vimrc就遇到“神秘配置入侵”的挫败感了!别慌,咱们一步步揪出背后的原因:
先查文件类型专属配置(ftplugin)
Vim天生会给不同类型的文件加载对应的专属配置,Python文件对应的就是python/python3相关的ftplugin脚本。你可以在打开Python文件后,在Vim里执行:scriptnames命令——它会列出当前所有已加载的脚本文件,你重点找带ftplugin/python的路径,不管是系统自带的还是第三方插件的,这些脚本都可能偷偷修改你的设置。另外先确认下文件类型识别对了没,执行:set filetype?,要是识别成别的类型,那加载的配置肯定不对。查看针对Python的自动命令
有些配置会通过自动命令(Autocmd)在打开Python文件时触发修改。你可以直接执行:autocmd FileType python,专门查看针对Python文件类型的所有自动命令,看看有没有陌生的指令在改你讨厌的设置。要是想全面排查所有自动命令,直接敲:autocmd就行,不过内容可能有点多,得慢慢筛。用
verbose命令定位设置源头
这绝对是最实用的一招!当你发现某个设置不对劲(比如缩进宽度、tab转空格这些),先执行:set <选项>?确认当前值,比如:set shiftwidth?。接着执行:verbose set <选项>?——这个命令会告诉你这个设置最后是被哪个脚本文件修改的!举个例子,它可能输出:
shiftwidth=4
Last set from /usr/share/vim/vim90/ftplugin/python.vim
直接就把源头文件揪出来了,是不是超方便?
排查第三方插件的锅
如果你用了插件管理器(比如Vim-Plug、Vundle)装了一堆插件,很可能是某个Python相关插件自带了默认配置。你可以先临时禁用所有插件,用vim -u NONE启动Vim,然后手动加载你的.vimrc(:source ~/.vimrc),再打开Python文件看看问题还在不在。要是消失了,就逐个启用插件,慢慢排查是哪个插件在搞事情。别忘了系统级全局配置
除了你个人的.vimrc,系统可能还有全局Vim配置,比如/etc/vim/vimrc或者/usr/share/vim/vimrc,这些文件里的设置也可能影响Python文件的行为。有空可以打开这些文件瞅瞅,有没有针对Python的特殊配置。
内容的提问来源于stack exchange,提问作者Sir Robert

