Vim as Python IDE on windows
下载安装 Python。
从Vim 的网站下载 vim, 建议下Self-installing executable的版本。
编辑 vim 的配置文件 _vimrc
拷贝 vimrc_example 里面的东东到 _vimrc
去掉 _vimrc 里面的 source $VIMRUNTIME/vimrc_example.vim
设置中文支持
" 设置编码自动识别, 中文引号显示
"set fileencodings=utf-8,cp936,big5,euc-jp,euc-kr,latin1,ucs-bom
set fileencodings=utf-8,gbk
set ambiwidth=double
设置 ColorScheme,我选择的是 desert,你可以在 GVim 的 Edit-->Color Scheme 看到其他的 Color Scheme。
"ColorScheme
colorscheme desert
设置 tab 插入空格,缩进,删除键删除缩进,页面文字宽度
" 允许退格键删除和 tab 操作
set smartindent
set smarttab
set expandtab
set tabstop=4
set softtabstop=4
set shiftwidth=4
set backspace=2
set textwidth=79
启用鼠标,启用行号
" 启用鼠标
set mouse=a
" 启用行号
set nu
完成以上步骤后用 GVim 打开 Python 代码的样子。
启用 omni-completion 的代码补全功能 , 这个系列的组件是随着 Vim 一起安装好的,我顺便把 Ruby 等其他语言的支持也加上了。现在按 Ctrl-X,Ctrl-O 可以补全代码
如下修改 _vimrc
"自动补全
filetype plugin indent on
set completeopt=longest,menu
"自动补全命令时候使用菜单式匹配列表
set wildmenu
autocmd FileType ruby,eruby set omnifunc=rubycomplete#Complete
autocmd FileType python set omnifunc=pythoncomplete#Complete
autocmd FileType javascript set omnifunc=javascriptcomplete#CompleteJS
autocmd FileType html set omnifunc=htmlcomplete#CompleteTags
autocmd FileType css set omnifunc=csscomplete#CompleteCSS
autocmd FileType xml set omnifunc=xmlcomplete#CompleteTags
autocmd FileType java set omnifunc=javacomplete#Complet
omni-completion 实现代码补全的效果
omni-completion 可以实现部分的代码补全功能,但是不是很全,所以我们启用pydiction,更丰富的的代码补全功能,按 tab 补全代码。
下载pydiction,解压后有 4 个文件,拷贝 python_pydiction.vim 和 complete-dict 到 ftplugin 目录,修改 _vimrc
"Pydiction
let g:pydiction_location = 'C:\Program Files\Vim\vim73\ftplugin\complete-dict
现在按 Tab 键可以实现代码补全,如图
下面我们需要分析源代码的工具Ctags,从网站下载 For Windows 版本的Ctags,解压缩后拷贝 ctags.exe 到某处,确保 windows 的 path 包含这个目录。
打开源代码文件,点击 GVim 上的 buildtags 按钮。或者在控制台中到你放源码的目录手动执行 ctags -R 命令。我们可以发现在当前目录下生成了 tags 文件。这个就是我们需要的。我们可以在方法上按 Crtl+],Vim 会帮你找到方法定义的地方。
下面我们需要使用这个文件查看源代码。我们需要用到另外一个插件TagList,配合 Ctags 可以高效的查看源代码。下载TagList解压缩后是 doc 和 plugin 和两个目录,把这两个目录拷贝到你的 Vim 安装目录(我的路径是 C:\Program Files\Vim\vim73),覆盖原目录(不用担心这样覆盖不会影响已存在的东西),修改 _vimrc 如下
"TagList
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
我们需要制定 tags 目录给 Vim, 在 Vim 中执行命令:set tags= 你的代码所在的路径 \tags,如果你一直使用同一个代码路径可以把他写死在 _vimrc 中,例如我的代码在
D:\VimTest 配置如下
"tags
set tags=D:\VimTest\tags
然后在 Vim 中执行:Tlist 就可以打开 TagList 的窗口了,如下图左边的窗口,试着在方法上点击,可以发现右侧的光标会自动跳到你点中的方法。
下面我们添加的是文件浏览的功能,下载WinManager ,加压缩后有三个文件,放到 plugin 目录里。配置如下可以同时显示 FileExplorer 和 TagList
"WinManager
let g:winManagerWindowLayout='FileExplorer|TagList'
nmap wm :WMToggle<cr>
下面我们输入 wm 命令就可以看到了,左上是 FileExplorer,左下是 TagList
启用Cscope ,更高级的分析源代码,支持反向查找
下载 windows 下的可用版本http://sourceforge.net/projects/mslk/,解压缩后拷贝所有文件到 windows 的 path 指向到的某个目录。
下载cscope_maps.vim,放到 Vim 的 plugin 目录。
修改 _vimrc,让查找结果显示在 quickfix 窗口而不是主窗口。
"cscope show in quickfix
set cscopequickfix=s-,c-,d-,i-,t-,e-
好了,配置完成,下面我们看看怎么用。在 vim 中输入:help if_cscop.txt 可以看到关于Cscope的帮助。
看完文档,我们可以在 vim 中输入命令:cs find c foo 用来查找 foo 方法在哪里被调用过。
cscope_maps.vim映射了一些键盘的快捷键,我们可以快捷的使用查找功能。
我比较喜欢使用 Ctrl+\, 让光标停留在你想查找的内容,然后输入 Ctrl+\ 后迅速的输入 c, 就可以在 quickfix 窗体看到查找的结果。如果结果有多条你可以输入命令:cw 展开 quickfix 窗体。(这个快捷操作第一次使用可能会有些别扭,多试几遍就好了)
下面是我的一个查找结果
启用MiniBufExplorer,管理 vim 的 buffer(缓冲区),快速的在多个同时编辑的文件间切换。
编辑 _vimrc 如下
"MiniBufExplorer
let g:miniBufExplMapWindowNavVim = 1
let g:miniBufExplMapWindowNavArrows = 1
let g:miniBufExplMapCTabSwitchBufs = 1
let g:miniBufExplModSelTarget = 1
配置好后打开多个文件MiniBufExplorer窗口就出现了。点击上面的文件名可以在不同的文件间快速切换。
启用 Grep,在工程中查找
Grep 是 linux 中命令,如果你不熟悉可以看Grep 的文档。
下载安装Grep for windows
下载 Vim 的 Grep 插件,grep.vim放在 plugin 目录
配置 _vimrc, 设置 F3 为快捷键
"Grep
nnoremap <silent> <F3> :Grep<CR>
把光标放在你需要搜索的内容,按下 F3, 可以看到 Search for pattern: xxx, 按下回车,出现 Search in files, 输入 *.py,只查找 python 的源代码文件,按下回车就可以看到搜索的结果了。见下图
启用VimPdb,可以调试 Python 程序。
下载VimPdb,解压后拷贝 VimPdb.py,VimPdb.vim 到 plugin 即可。
用 vim 代开 python 代码文件,按 F5 运行,然后按 F2 设置断点,在运行到断点后可以用按 F12 可以查看 Stack Trace,F3 查看变量和参数值。
更高级的使用可以查看文档。
启用 ropevim ,重构 Python 程序
下载 rope,ropemode,ropevim,分别解压缩,打开控制台,cd 到解压缩目录,执行 python setup.py install 安装。
然后拷贝 ropevim.vim 文件到 plugin 目录。这样就安装好了。我们试试重构一个类名,光标放在类名上,按 Ctrl-c 然后连按两下 r。
可以看到 quickfix 窗体要求你输入 New name:,输入新的名称回车,再回车,重构就完成了。如下图
Python 代码检查
在 Vim 的 ftplugin 目录下新建一个 python 目录。
下载pyflakes,解压缩后把 pyflakes.vim 文件和 pyflakes 目录拷贝套 ftplugin\python 目录中。
打开一个有问题的 python 源代码文件,执行命令:cc,即可进行代码检查,如下图中找到了两处错误。
好了终于写完了,真累,最后放个大图,显示下整体效果。
参考文档:
手把手教你把 Vim 改装成一个 IDE 编程环境 (图文)
参考众多,不一一列举了。