vim的python IDE开发环境

vim是一个强大的编辑器,它使得我们全键盘操作成为可能,但是它是否是一个好的编程工具,它是否可以跟visual studio相
提并论呢,也许这是vim的短板,但是通过一些实用的插件,可以让vim成为一个IDE,这实在太棒了。
vim的高效一直都让人崇拜,先让它成为python的开发环境,随后再在实践中进一步学习和总结。

环境CentOS
安装vim-enhanced
[root@Alicia ~]# vi ~/.bashrc 
  1 # .bashrc                                                                      
  2                                                                                
  3 # User specific aliases and functions                                          
  4                                                                                
  5 alias rm='rm -i'                                                               
  6 alias cp='cp -i'                                                               
  7 alias mv='mv -i'                                                               
  8 alias vi='vim'                                        #CentOS默认是用vi,不是vim                                                             
  9                                                                                
 10 # Source global definitions                                                    
 11 if [ -f /etc/bashrc ]; then                                                    
 12     . /etc/bashrc                                                              
 13 fi                                                                             
 14 export PATH=/usr/bin/python:$PATH                                              
 15 export PYTHONSTARTUP=~/.pythonstartup                                          
 16 export PYTHONSTARTUP=~/.pythonstartup

python 语法高亮

http://www.vim.org/scripts/script.php?script_id=790
[root@Alicia vim70]# mv /usr/share/vim/vim70/syntax/python.vim /usr/share/vim/vim70/syntax/python.vim.ori
[root@Alicia vim70]# cp /home/share/vim/python.vim /usr/share/vim/vim70/syntax/         #更新最新版本python_vim

ctags intall

[root@Alicia~]# cd ctags-5.8/
[root@Alicia ctags-5.8]# ./configure
[root@Alicia ctags-5.8]# make
[root@Alicia ctags-5.8]# make install
[root@Alicia ctags-5.8]# cd /usr/share/vim/vim70/
[root@Alicia vim70]# ctags -R                       #生成tags文件,记录了程序/项目的函数,类等的分析序列记录
[root@Alicia vim70]# ls
after          filetype.vim        keymap        scripts.vim
autoload       ftoff.vim           lang          spell
bugreport.vim  ftplugin            macros        synmenu.vim
colors         ftplugin.vim        menu.vim      syntax
compiler       ftplugof.vim        mswin.vim     tags
complete-dict  gvimrc_example.vim  optwin.vim    tools
delmenu.vim    indent              plugin        tutor
doc            indent.vim          print         vimrc_example.vim
evim.vim       indoff.vim          pydiction.py 59 let Tlist_Show_One_File=1

[root@Alicia vim70]# vi /etc/vimrc 
set tags=/usr/share/vim/vim70/tags
Note:
修改程序后, 比如增加了函数定义, 删除了变量定义, tags文件不能自动rebuild,需要重新ctags -R
ctrl-],ctrl-T进行切换,查找函数的定义

在vim中显示ctag序列列表

http://www.vim.org/scripts/script.php?script_id=273
[root@Alicia~]#unzip taglist_46.zip
[root@Alicia~]#cd taglist_46/
[root@Alicia~]#cp doc/taglist.txt /usr/share/vim/vim70/doc/taglist.txt
[root@Alicia~]#cp plugin/taglist.vim /usr/share/vim/vim70/plugin/taglist.vim
[root@Alicia vim70]# vi /etc/vimrc 
 59 let Tlist_Show_One_File=1                                     不同时显示多个文件的tag,只显示当前文件
 60 let Tlist_Exit_OnlyWindow=1                                   如果taglist窗口是最后一个窗口,则退出vim
 61 let Tlist_Use_Right_Window =1                                 Tlist放在右边
 62 let Tlist_Auto_Open =1                                        自动打开Tlist
 63 let Tlist_File_Fold_Auto_Close=1                              只显示当前文件tag,共它文件的tag折叠
 64 let Tlist_Use_Hori_Windows =1                                 设置taglist窗口横向显示
useage:
:Tlist
taglist command:
p 跳到光标下tag所定义的位置
u 更新taglist中的tag
x taglist窗口大小
- 折叠
q 关闭

vim的python IDE开发环境_第1张图片

在vim中显示标签

http://www.vim.org/scripts/script.php?script_id=95
[root@Alicia vim70]# cp /home/share/vim/minibufexpl.vim /usr/share/vim/vim70/plugin/
[root@Alicia vim70]# vi /etc/vimrc 
 70 let g:miniBufExpMapWindowNavVim = 1                         ctrl-w,h,j,k                                                        
 71 let g:miniBufExpMapWindowNavArrows = 1                      ctrl+<-,->                                                              
 72 let g:miniBufExpMapCTabSwitchBufs = 1                       ctrl-tab, ctrl+shift-tab                                          
 73 let g:miniBufExpModSelTarget = 1 
 

vim的python IDE开发环境_第2张图片

visual mark

http://www.vim.org/scripts/script.php?script_id=1026
[root@Alicia vim70]# cp /home/share/vim/visualmark.vim /usr/share/vim/vim70/plugin/
 27 "  Public Interface:
 28 if !hasmapto('<Plug>Vm_toggle_sign')
 29   map <unique> <c-F2> <Plug>Vm_toggle_sign
 30   map <silent> <unique> mm <Plug>Vm_toggle_sign                           # mm--mark
 31 endif
 32 nnoremap <silent> <script> <Plug>Vm_toggle_sign :call Vm_toggle_sign()<cr>
 33 
 34 if !hasmapto('<Plug>Vm_goto_next_sign')
 35   map <unique> mn <Plug>Vm_goto_next_sign                               #mn--go to next sign
 36 endif
 37 nnoremap <silent> <script> <Plug>Vm_goto_next_sign  :call Vm_goto_next_sign()<cr>
 38 
 39 if !hasmapto('<Plug>Vm_goto_prev_sign')
 40   map <unique> mp <Plug>Vm_goto_prev_sign                               #mp--go to prev sign
 41 endif
 42 nnoremap <silent> <script> <Plug>Vm_goto_prev_sign  :call Vm_goto_prev_sign()<cr>

vim的python IDE开发环境_第3张图片

文件浏览窗口管理器WinManager

http://www.vim.org/scripts/script.php?script_id=95
[root@Alicia vim70]# cp -r /home/share/vim/winmanager/plugin/* /usr/share/vim/vim70/plugin/
[root@Alicia vim70]# cp -r /home/share/vim/winmanager/doc/* /usr/share/vim/vim70/doc/  
<cr>光标所在位置打开文件
-   返回上级目录
c   切换工作目录
d   删除目录
D   删除目录或文件
i   切换显示方式
R   重命名
[root@Alicia vim70]# vi /etc/vimrc 
 68 let g:winManagerWindowLayout='FileExplorer|Taglist'                                         
 69 nmap wm :WMToggle<cr>
在vim中按wm会出现文档与tag视图
vim的python IDE开发环境_第4张图片 自动补齐
vim7.0自带pythoncomplete.vim
[root@Alicia vim70]# vi /etc/vimrc 
autocmd Filetype python set omnifunc=pythoncomplete#Complete
便可以使用ctrl-x,ctrl-o进行补全,ctrl-p,ctrl-n进行选择,更加完整的做法:
http://www.vim.org/scripts/script.php?script_id=850
[root@Alicia vim70]cd pydiction-1.2.3/
[root@Alicia vim70]ls
[root@Alicia vim70]cd pydiction/
[root@Alicia vim70] cp pydiction.py complete-dict /usr/share/vim/vim70/after/ftplugin/
[root@Alicia vim70]cp after/ftplugin/python_pydiction.vim /usr/share/vim/vim70/after/ftplugin/
[root@Alicia vim70]# vi /etc/vimrc 
 34 filetype plugin on
 35 let g:pydiction_location='/usr/share/vim/vim70/after/ftplugin/complete-dict'
 36 let g:pydiction_menu_height=5
 37 autocmd FileType py set shiftwidth=4 | set expandtab
vim的python IDE开发环境_第5张图片
代码折叠
[root@Alicia vim70]# vi /etc/vimrc 
59 set fdm=indent
zo:            打开光标位置的折叠代码
zc:            折叠光标位置的代码
zr:            将文件中所有折叠代码打开
zm:            将文件中所有代码折叠
zR:           与zr类似,但会打开子折叠
zM:           与zm类似,但会关闭子折叠
zi:           打开与关闭折叠

vim的python IDE开发环境_第6张图片


vim的python IDE开发环境_第7张图片

在项目工程中查找grep
 http://www.vim.org/scripts/script.php?script_id=311
[root@Alicia vim70]# vi /etc/vimrc 
 76 "set grep
 77 nnoremap <silent>ft :Grep<CR> 
[root@Alicia vim70]# cp -r /home/share/vim/pyflakes-vim/ftplugin/* /usr/share/vim/vim70/ftplugin/
ft
Search for pattern: self
Search in files: *.py



vim的python IDE开发环境_第8张图片
参考
http://easwy.com/blog/archives/advanced-vim-skills-cscope/
http://blog.sina.com.cn/s/blog_627bb2cf0101ftdx.html
http://blog.chinaunix.net/uid-25719044-id-3026457.html
http://blog.csdn.net/wooin/article/details/1858917 




你可能感兴趣的:(vim的python IDE开发环境)