<p>我不打算在这里发布我的整个.vimrc文件,但我有一个与您类似的设置。不过,这不是特定于Python/Django的,除了snipMate和Python模式的一些自定义片段。这里是我正在使用的vim插件:</p>
<ul>
<li><a href="http://www.vim.org/scripts/script.php?script_id=2332" rel="nofollow">Pathogen</a>:vim dir中组织得更好的vim插件结构</li>
<li><a href="http://www.vim.org/scripts/script.php?script_id=1528" rel="nofollow">comments.vim</a>:使用ctrl-c和ctrl-x进行更快的特定语言注释</li>
<li><a href="http://www.vim.org/scripts/script.php?script_id=1658" rel="nofollow">NERDTree</a></li>
<li><a href="https://github.com/jistr/vim-nerdtree-tabs" rel="nofollow">NERDTree tabs</a></li>
<li><a href="https://github.com/scrooloose/syntastic" rel="nofollow">syntastic</a>:语法检查插件(对我来说主要用于非python代码)</li>
<li><a href="http://www.vim.org/scripts/script.php?script_id=1697" rel="nofollow">surround.vim</a>和<a href="https://github.com/Townk/vim-autoclose" rel="nofollow">autoclose.vim</a>:更容易处理括号、打开和关闭标记等</li>
<li><a href="http://www.vim.org/scripts/script.php?script_id=39" rel="nofollow">matchit</a>:扩展了<code>%</code>命令,以匹配并循环通过例如html标记。对于遍历Python代码语句(例如,如果elif else),可以下载<a href="http://www.vim.org/scripts/script.php?script_id=386" rel="nofollow">python_match.vim</a>并将其放入<code>ftplugin/python/</code>目录中。我把它放进<code>~/.vim/bundle/matchit/ftplugin/python/</code></li>
<li><a href="https://github.com/klen/python-mode" rel="nofollow">python-mode</a>:伟大的Python编辑插件。在文件保存时自动执行pyflakes/pep8检查(如果需要,也可以使用pylint)。不过,我在我的<code>.vimrc</code>文件中通过<code>let g:pymode_rope = 0</code>禁用了自动完成,因为每次保存文件时它都会滞后于我。还扩展了python代码的语法突出显示。</li>
<li><a href="http://www.vim.org/scripts/script.php?script_id=2540" rel="nofollow">snipMate</a>(下面是python的自定义代码片段)</li>
<li><a href="http://majutsushi.github.com/tagbar/" rel="nofollow">tagBar</a>:我不能没有一个巨大代码文件的大纲。</li>
</ul>
<p>一些我经常使用的自定义python片段:</p>
<pre><code>snippet #utf
# -*- coding: utf-8 -*-
snippet ds
"""
${1: }
"""
# just the first (or last) three quites for the docstring
snippet dss
"""${1: }
# For file headers
snippet dsfile
"""
:File: ${1:`Filename('$1.py', 'foo.py')`}
:Author: ${2:`g:snips_author`}
:Description: ${3}
"""
snippet pdb
import pdb
pdb.set_trace()
</code></pre>