我有的Vim 7(增强型)在CentOS 5,并且它配备了所有常用的Vim的插件/脚本准备好了。

$ find /usr/share/vim/vim70/ -name \*python\*
/usr/share/vim/vim70/syntax/python.vim
/usr/share/vim/vim70/ftplugin/python.vim
/usr/share/vim/vim70/indent/python.vim
/usr/share/vim/vim70/autoload/pythoncomplete.vim

我认为,在开放的.py(vim file.py)结尾的文件时,它会自动加载这些插件,但我不知道是这种情况。我要的是:

TAB 和接收四个空格。为套件,条件等自动缩进下一行。

我通过显式设置的制表位,shiftwidth的,等我的.vimrc文件中有这样的工作。这不是什么上面的Python 文件是?为什么我设置在我.vimrc这些东西?我如何获得这些功能从Vim的插件呢?

当前的.vimrc:

syntax on
set hls
set expandtab
set textwidth=0
set tabstop=4
set softtabstop=4
set shiftwidth=4
set autoindent
set backspace=indent,eol,start
set incsearch
set ignorecase
set ruler
set wildmenu
set smarttab
filetype indent on
filetype on
filetype plugin on
有帮助吗?

解决方案

设置的制表位,shiftwidth的,等等......你的vimrc是正确的。这些设置您的全局设置,以及作为参数传递给特定文件类型缩进的支持。

在语言缩进插件使用这些设置,但通常还设置一个缩进表达式(:he inde)适合的语言。因此,Python的压头应该是自动块开幕词后缩进(DEF,类,为...),以及关闭一个后dedenting(回报,传球,继续......),以及这样做根据TS,SW, ...您已设置。

如果你仍然不能确定,如果该插件加载一个缓冲,根本就:filetype显示检测,插件和缩进设置,并:set ft?看到检测的类型。

其他提示

我的理解是,python.vim文件只是一个语法高亮文件可能,因为Python文件可以缩进多种方式。 PEP8 规定四个空格,但遗留的文件可能会有所不同,包括使用的标签

我们的一些遗留Python文件的实际使用每缩进两个空格。所以,我离开的Python缩进Vim中每个文件和文件类型的每个配置它。在.vimrc中下面的行给了我Python特定的设置,这不同于说我的XML,XHTML和HTML(两个空格)。

au FileType python setl shiftwidth=4 tabstop=4

您也可以通过文件中设置特定的设置与模式行,如果你做的这是很方便有传统的文件。

# vi: set tabstop=2 expandtab textwidth=70 filetype=python:
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top