打造vim中的python IDE

 首先先介绍几个常用的插件:

1,ctags和taglist,这个大家估计都很常用,在ubuntu下只要安装exuberant-ctags即可啦,另外tagbar支持面向对象语言的展示

 

  
  
  
  
  1. " toggle Tagbar display 
  2.  
  3. map <F4> :TagbarToggle<CR> 
  4.  
  5. " autofocus on Tagbar open 
  6.  
  7. let g:tagbar_autofocus = 1  

 

这样的话,只需按下f4就会弹出taglist窗口,默认是打开。

2,pydoc.vim 在vim中查找python文档,这个相当管用,你可以调用Pydoc <keyword>,也可以当光标停在某个关键词的位置时,按下K就能弹出文档,设置pydoc的执行路径如下,后面的路径和你的执行pydoc命令的环境有关

  
  
  
  
  1. let g:pydoc_cmd = '/usr/bin/pydoc2.4' 

3,pyflakes.vim 支持python实时语法检查, 输入 ‘:cc’ 定位语法错误,确保.vimrc中设置了

  
  
  
  
  1. filetype plugin indent on 

另外这个只支持python2.5以上的版本,这个比较坑爹

4,nerd_tree.vim vim中的文件浏览器,我做了一个映射,只需按下F3就可弹出当前目录下文件结构

  
  
  
  
  1. " NERDTree (better file browser) toggle 
  2. map <F3> :NERDTreeToggle<CR> 

5,自动补全,AutoComplPop 支持直接pop,在输入代码的同时给予提示,但是vim版本必须是vim 7.2以上,另外支持自动补全比较好的就是pydiction.vim,比系统自带自动补全强大多了,支持tab补全,这家伙有3个组成部分。一个是插件本身python_pydiction.vim,另外一个是生成diction文件的python脚本pydiction.py,最后是一个自带的complete-dict文件

6,python调试,vim-debug 这个依赖于系统的vim-debug模块,支持交互式调试,设置断点,跳出跳进函数,支持查看栈和变量,我的配置:

  
  
  
  
  1. " debugger keyboard shortcuts 
  2. map <F5> :Dbg over<CR> 
  3. map <F6> :Dbg into<CR> 
  4. map <F7> :Dbg out<CR> 
  5. map <F8> :Dbg here<CR> 
  6. map <F9> :Dbg break<CR> 
  7. map <F10> :Dbg watch<CR> 
  8. map <F11> :Dbg down<CR> 
  9. map <F12> :Dbg up<CR> 

7,conque_term 提供在vim中打开终端的功能,非常有用,可以vim buffer中执行python 命令(:ConqueTerm shell )也可执行bash命令(:ConqueTerm bash) 

 

接下来,我们再来分析下.vimrc文件,贴部分配置:

  
  
  
  
  1. "不使用vi兼容模式 
  2. set nocompatible 
  3. " allow plugins by file type
  4. filetype plugin on 
  5. filetype indent on 
  6.  
  7. " tabs and spaces handling 
  8. "使用扩展tab,即所有tab都是空格组成 
  9. set expandtab 
  10. set tabstop=4 
  11. "插入模式下tab代表空格数 
  12. set softtabstop=4 
  13. "使用shift+>移动空格数 
  14. set shiftwidth=4 
  15.  
  16. " always show status bar 
  17. set ls=2 
  18.  
  19. " incremental search 
  20. set incsearch 
  21.  
  22. " highlighted search results 
  23. set hlsearch 
  24.  
  25. " line numbers 
  26. set nu 
  27.  
  28. " toggle Tagbar display 
  29. map <F4> :TagbarToggle<CR> 
  30. " autofocus on Tagbar open 
  31. let g:tagbar_autofocus = 1 
  32.  
  33. " 调用F3,显示文件树 
  34. map <F3> :NERDTreeToggle<CR> 
  35.  
  36. " tab导航,tt表示新开一个tab页,tn下一个tab页,tp上一个tab页,tm最后一个tab页 
  37. map tn :tabn<CR> 
  38. map tp :tabp<CR> 
  39. map tm :tabm<CR> 
  40. map tt :tabnew 
  41. map <C-S-Right> :tabn<CR> 
  42. imap <C-S-Right> <ESC>:tabn<CR> 
  43. map <C-S-Left> :tabp<CR> 
  44. imap <C-S-Left> <ESC>:tabp<CR> 
  45.  
  46. " 支持alt+方向键在各个口中切换 
  47. map <M-Right> <c-w>
  48. map <M-Left> <c-w>
  49. map <M-Up> <c-w>
  50. map <M-Down> <c-w>
  51. imap <M-Right> <ESC><c-w>
  52. imap <M-Left> <ESC><c-w>
  53. imap <M-Up> <ESC><c-w>
  54. imap <M-Down> <ESC><c-w>
  55. " 当鼠标滚动的时候,鼠标一直在倒数第三行的位置 
  56. set scrolloff=3 
  57.  
  58. "执行python文件运行E即可 map <buffer> <S-e> :w<CR>:!/usr/bin/env python % <CR>

贴个照片:

 

参考文献:https://github.com/fisadev/fisa-vim-config
 

 

你可能感兴趣的:(python,vim,ide,vimrc,pyflakes)