将操作系统从 Kubuntu 12.10 重新安装到 Kubuntu 14.04 后,VIM 在编辑 Python 文件时的行为发生了变化。虽然在重新安装之前,所有文件类型都已设置noexpandtab
和tabstop=4
,但现在在 Python 中这些值是expandtab
和tabstop=8
,也可以通过 VIM 行为和询问 VIM 进行检查set foo?
。
非 Python 文件保留了我喜欢的noexpandtab
和行为。tabstop=4
重新安装期间目录.vim
和.vimrc
未发生改变。可以看出,.vimrc
几个月来没有改变过 中的文件(除了不相关的.netrwhist
):
- bruno():~$ ls -lat ~/.vim
total 68
drwxr-xr-x 85 dotancohen dotancohen 12288 Aug 25 13:00 ..
drwxr-xr-x 12 dotancohen dotancohen 4096 Aug 21 11:11 .
-rw-r--r-- 1 dotancohen dotancohen 268 Aug 21 11:11 .netrwhist
drwxr-xr-x 2 dotancohen dotancohen 4096 Mar 6 18:31 plugin
drwxr-xr-x 2 dotancohen dotancohen 4096 Mar 6 18:31 doc
drwxrwxr-x 2 dotancohen dotancohen 4096 Nov 29 2013 syntax
drwxrwxr-x 2 dotancohen dotancohen 4096 Nov 29 2013 ftplugin
drwxr-xr-x 4 dotancohen dotancohen 4096 Nov 29 2013 autoload
drwxrwxr-x 5 dotancohen dotancohen 4096 May 27 2013 after
drwxr-xr-x 2 dotancohen dotancohen 4096 Nov 1 2012 spell
-rw------- 1 dotancohen dotancohen 138 Aug 14 2012 .directory
-rw-rw-r-- 1 dotancohen dotancohen 190 Jul 3 2012 .VimballRecord
drwxrwxr-x 2 dotancohen dotancohen 4096 May 12 2012 colors
drwxrwxr-x 2 dotancohen dotancohen 4096 Mar 16 2012 mytags
drwxrwxr-x 2 dotancohen dotancohen 4096 Feb 14 2012 keymap
虽然.vimrc
自从重新安装后就一直有动静,但只有我进行测试以查看问题出在哪里。
我怎么知道什么是settingexpandtab
和tabstop
?
附注:我甚至不确定我应该在内置帮助中阅读有关此问题的哪些内容。我从“:h plugin”开始,但除了显示已加载以下插件(可能相关)外,这没有任何帮助:
standard-plugin-list
Standard plugins
pi_getscript.txt Downloading latest version of Vim scripts
pi_gzip.txt Reading and writing compressed files
pi_netrw.txt Reading and writing files over a network
pi_paren.txt Highlight matching parens
pi_tar.txt Tar file explorer
pi_vimball.txt Create a self-installing Vim script
pi_zip.txt Zip archive explorer
LOCAL ADDITIONS: local-additions
DynamicSigns.txt - Using Signs for different things
NrrwRgn.txt A Narrow Region Plugin (similar to Emacs)
fugitive.txt A Git wrapper so awesome, it should be illegal
indent-object.txt Text objects based on indent levels.
taglist.txt Plugin for browsing source code
vimwiki.txt A Personal Wiki for Vim
答案1
您可以通过以下方式检查这些值在哪里被更改
:verbose setlocal ts? et?
很可能,它是通过以下添加的行来实现的$VIMRUNTIME/ftplugin/python.vim
:
" As suggested by PEP8. setlocal expandtab shiftwidth=4 softtabstop=4 tabstop=8
~/.vim/after/ftplugin/python.vim
您可以通过以下内容的脚本撤消此操作
setlocal noexpandtab shiftwidth=4 softtabstop=0 tabstop=4
或者,如果你想要按项目配置选项卡,而不是全局配置,请添加
let g:python_recommended_style=0
到项目的.vimrc
。此后,python 插件将不再强制执行 PEP8 建议,您可以自由地在项目中设置选项卡.vimrc
。