2013年4月15日星期一

[总结] 将 VIM 打造成智能 IDE 之 php/python 代码自动补全


关键词: VIM IDE php python 代码补全

VIM 之美在于折腾.
在编辑模式下,按下 ctrl+p 或 ctrl+n 能实现代码自动补全.然此功能有个非常大的局限,补全的内容仅限于本文件出现过的,用来防止拼写错误还成,和 IDE 工具的代码自动补全不能同日而言.
常言道:工欲善其事,必先利其器.选择了神的编辑器,怎么能容忍工具如此功能不全,开发如此不智能呢?! OK,下面主要以 php, python 为例子来说明,怎么实现简单而有效的代码主动补全.

[php]
1. 在用户主目录下建立必要的目录
$ cd
$ mkdir -p .vim/tools/php

2. 在linux 下有个技巧可以快速生成 php 函数自动补全的词表文件,到 php 源码目录下,搜索 PHP_FUNCTION 或 ZEND_FUNCTION 关键字:
$ find ./php.5.3 -type f -name "*.h" -o -name "*.c" | xargs grep -E "PHP_FUNCTION|ZEND_FUNCTION" | sed -ie "s/.*_FUNCTION(//g;s/)//g" | sort | uniq > functions.txt

3. 将 functions.txt 放到 ~/.vim/tools/php 下

4. 修改 VIM 配置文件
$ ~/.vimrc  # 加入以下内容
set completeopt=longest,menu    " 设置代码提示为弹出层
function AddPHPFuncList()
    set dictionary-=~/.vim/tools/php/functions.txt dictionary+=~/.vim/tools/php/functions.txt
    set complete-=k complete+=k
endfunction
au FileType php call AddPHPFuncList()   " 告诉 VIM 以后缀名来识别文件类型,以进行函数自动补全.

这样在编辑文件时,按下 ctrl+n 实现向下选择提示词, ctrl+p 向上选择提示词.

[python]
1. 在用户主目录下建立必要的目录
$ cd
$ mkdir -p .vim/tools/python

2. 从 http://vim.sourceforge.net/scripts/script.php?script_id=850 下载文件包,并将里面的文件解压到 .vim/tools/python 下.

3. 修改 VIM 配置文件
$ ~/.vimrc  # 加入以下内容
function AddPythonFuncList()
    set dictionary-=~/.vim/tools/python/complete-dict dictionary+=~/.vim/tools/python/complete-dict
    set complete-=k complete+=k
endfunction
au FileType python call AddPythonFuncList()   " 告诉 VIM 以后缀名来识别文件类型,以进行函数自动补全.

如此便大功告成.
enjoy it.

有图为证:


1 条评论:

steve 说...

vim之美在于折腾,严重同意