8

我想用vim写python代码,但是自动缩进有问题。首先,我从http://www.vim.org/scripts/script.php?script_id=790下载了最新的 python.vim并将其放在正确的目录中。然后我编辑了我的 vimrc。

syntax on
set nu
set tabstop=4
set softtabstop=4
set shiftwidth=4
"set cindent
set autoindent
set smartindent
set expandtab
set filetype=python
au BufNewFile,BufRead *.py,*.pyw setf python

现在我发现像'for'、'if'、'while'这样的关键字可以完美地自动缩进。但它不适用于“def”、“try”、“except”。我该怎么办?非常感谢你。

4

2 回答 2

8

我的vimrc里有这行很久了,不知道现在有没有更好的方法。但你至少可以试一试。

set cindent
autocmd FileType python setlocal foldmethod=indent smartindent shiftwidth=4 ts=4 et cinwords=if,elif,else,for,while,try,except,finally,def,class

我有

filetype plugin indent on  

于 2013-05-15T16:52:44.200 回答
2

您链接到的那个 vim 脚本不做任何自动缩进,只做语法高亮。

您正在观察的自动缩进是内置于 vim 中的,它是为编码 C 而设计的,它只识别此处描述的关键字:

http://vimdoc.sourceforge.net/htmldoc/options.html#%27cinwords%27

这就是为什么它适用于ifwhile不适用defdefC 中没有)。你用set cindent.

您可能想尝试另一个像这样的脚本:

http://www.vim.org/scripts/script.php?script_id=974

于 2013-05-15T17:07:01.853 回答