Vim Python indentation not working?
我在CentOS 5上有Vim 7(增强版),它附带了所有常用的Vim插件/脚本。
1 2 3 4 5 | $ 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(
按TAB并接收四个空格。 套房,条件等的自动缩进下一行
我通过在.vimrc文件中明确设置tabstop,shiftwidth等来实现这一点。 这不是上面的Python文件的用途吗? 为什么我必须在
目前的.vimrc:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 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 |
我的理解是python.vim文件可能只是一个语法高亮文件,因为Python文件可以多种方式缩进。 PEP8规定了四个空格,但遗留文件可能不同,包括使用制表符。
我们的一些遗留Python文件实际上每个缩进使用两个空格。所以我将Python缩进到Vim并按文件和每个文件类型配置它。 .vimrc中的以下行给出了特定于Python的设置,这些设置与我的xml,xhtml和html(两个空格)不同。
1 | au FileType python setl shiftwidth=4 tabstop=4 |
您还可以使用模式行按文件设置特定设置,如果您有遗留文件,则可以使用。
1 | # vi: set tabstop=2 expandtab textwidth=70 filetype=python: |
在vimrc中设置tabstop,shiftwidth等是正确的。这些设置您的全局设置,以及作为特定于文件类型的缩进支持的参数。
语言缩进插件使用这些设置,但通常还设置适合该语言的缩进表达式(
如果您仍然不确定插件是否正在加载缓冲区,只需执行