使用Vim做python IDE(下)

Python部落组织翻译, 禁止转载


python 模式


这部分内容比较多。这里面包含了Vim中你所需要的的全部python模块功能。比如Lint,codecompletion, documentation lookup, jump to classes, refactoring tools 等。你可以从这里查看到 Python-mode。


它的插件是:

Bundle 'klen/python-mode'


再次运行安装::BundleInstall   ,接着我们需要设定一些配置,这里面配置非常多,如果你想全面了解我建议你前往Github repo中了解,阅读更完整的文档,或者在vim中运行:help python-mode来查找。


以下是我目前为止发现最为重要的配置,但是你也可以调整一些配置以配合你的需要和工作习惯。以下是我我.vimrc的副本。里面的快捷键设置是我发现最有用的,我保留在那里以便参考:


" Python-mode
" Activate rope
" Keys:
" K             Show python docs
" <Ctrl-Space>  Rope autocomplete
" <Ctrl-c>g     Rope goto definition
" <Ctrl-c>d     Rope show documentation
" <Ctrl-c>f     Rope find occurrences
" <Leader>b     Set, unset breakpoint (g:pymode_breakpoint enabled)
" [[            Jump on previous class or function (normal, visual, operator modes)
" ]]            Jump on next class or function (normal, visual, operator modes)
" [M            Jump on previous class or method (normal, visual, operator modes)
" ]M            Jump on next class or method (normal, visual, operator modes)
let g:pymode_rope = 1

" Documentation
let
g:pymode_doc = 1
let
g:pymode_doc_key = 'K'

"Linting
let
g:pymode_lint = 1
let
g:pymode_lint_checker = "pyflakes,pep8"

"
Auto check on save
let g:pymode_lint_write = 1

" Support virtualenv
let
g:pymode_virtualenv = 1

" Enable breakpoints plugin
let
g:pymode_breakpoint = 1
let
g:pymode_breakpoint_bind = '<leader>b'

" syntax highlighting
let
g:pymode_syntax = 1
let
g:pymode_syntax_all = 1
let
g:pymode_syntax_indent_errors = g:pymode_syntax_all
let g:pymode_syntax_space_errors = g:pymode_syntax_all

" Don't autofold code
let
g:pymode_folding = 0


以上的参数稍微做些介绍:如下:

  • 按K允许查看Python文档

  • 每次保存代码时自动检查,但仅适用 PyLint or PyFlakes

  • 支持virtualenv

  • 用<leader>b 增加一个 pdb快捷键(插入simport pdb; pdb.set_trace() ### XXX BREAKPOINT到你的代码中)

  • 增强语法高亮和输入


如我所说,请阅读全部文档并调整适合自己的配置


Jedi vim


自从我写这篇文章我发现 Jedi-vim ,它取代了之前使用的来自python的自动补全插件。使用它你所需要做就是将它加入vundle列表当中,并注释掉Rope插件,把let g:pymode_rope = 1 改为let g:pymode_rope = 0。我感觉它相较于Rope更迅速也更强大。但是如果你不喜欢安装其他插件,你也大可宽心使用Rope。


其他设定


我同时还在.vimrc中使用一些特别的设置,以便界面使用起来更友好。

" Use <leader>l to toggle display of whitespace

nmap <leader>l :set list!<CR>

" automatically change window's cwd to file's dir

set autochdir


" I'm prefer spaces to tabs

set tabstop=4

set shiftwidth=4

set expandtab


" more subtle popup colors

if has ('gui_running')

   highlight Pmenu guibg=#ccccccgui=bold

endif


总结


这是我自己的用于python开发环境的一些关键Vim配置。我觉得python模式提供了全部关键的功能。而其他十分有用的插件增加则让我的工作更加便捷。你可能会问我为什么不使用文件列表如 fuzzy file search 或者其他,这是因为我并不使用它们。我之前已经尝试使用但并不习惯用它们,我更喜欢直接打开文件或者用NerdTree。


我喜欢能提供些好点子帮助你设置你自己的python开发环境的Vim配置。最后再强调下,如果你发现有用,欢迎随时评论留言有关这些插件或者配置方面的问题,我也很乐意听到你们一些别的想法。


英文原文: http://unlogic.co.uk/2013/02/08/vim-as-a-python-ide/

译者: bingo


 

2月15日11:00到13:00网站停机维护,13:00前恢复
iPy智能助手 双击展开
查看更多聊天记录
(Ctrl+回车)换行