您的位置:首页 > 编程语言 > Python开发

Vim中Python自动补全

2014-08-12 10:00 453 查看
这里介绍三种方法,系统自带的omnicompletion,插件pydiction,插件snipmate(强烈推荐)

1. omnicompletion

1.1 安装

注意:vim73已带该插件,不需要再安装,只需在vimrc中配置即可

Vim7中添加了对文法提示和自动完成的支持,对于python来说需下载pythoncomplete.vim(http://www.vim.org/scripts/script.php?script_id=1542)并将其放在<Vim安装目录>/<$VIMRUNTIME>/autoload/目录下,接着在vimrc中添加如下命令:

filetype plugin on

set ofu=syntaxcomplete#Complete

autocmd FileType python

set omnifunc=pythoncomplete#Complete

autocmd FileType python runtime! autoload/pythoncomplete.vim

1.2 使用

编写代码时通过ctrl-x ctrl-o来打开文法提示上下文菜单

2. pydiction

2.1 pydiction介绍

pydiction是一个vim python自动补全插件,这是一个相当不错的 Python 代码自动完成的脚本。

可以实现下面python代码的自动补全:

1. 简单python关键词补全

2. python 函数补全带括号

3. python 模块补全

4. python 模块内函数,变量补全

5. from module import sub-module 补全

2.2 pydiction插件安装使用

注意:这里是pydiction 1.0 之后版本安装配置,适用VIM7之后的版本。

本地下载:http://www.pythonclub.org/_media/python-basic/pydiction-1.2.zip?id=python-basic%3Avim&cache=cache

官方地址:http://vim.sourceforge.net/scripts/script.php?script_id=850

我是在windows下载后再将解压后文件拷到linux下去的

2.2.1 python_pydiction.vim

将文件 python_pydiction.vim 放到 ~/.vim/after/ftplugin/ 路径下,如果这个路径不存在,你可以自己创建这个文件夹结构。(Windows下面的话放在目录类似的结构中)

2.2.2 complete-dict

将complete-dict文件放到你自己的某个路径下,后面的配置会用到这个文件,这个文件就是记录所有的python关键词。

我将这个文件放到 ~/.vim/tools/pydiction/complete-dict

2.2.3 配置.vimrc

在 ~/.vimrc 文件中添加如下配置

"pydiction 1.2 python auto complete

filetype plugin on

let g:pydiction_location = '~/.vim/tools/pydiction/complete-dict'

"defalut g:pydiction_menu_height == 15

"let g:pydiction_menu_height = 20

2.2.4 使用

pydiction 1.2 版本在VIM中直接用 <Tab> 键就可以实现自动补全。

如在vim中键入 os.pa<Tab> 后出现的自动补全界面。

CTRL-Y 接受当前选项并结束补全

<Space> 接受当前选项并在后面插入空格

CTRL-E 关闭列表并取消选择

如果直接回车就会接受当前补全结束插入并开始一个新行

执行:help popupmenu-keys查看更多热键

如果想执行py脚本,输入:

$!python a.py

如果想在命令补全中引入另外的的模块中的类和方法,输入:

$python pydiction.py <模块名1> <模块名2> ...

在引入模块后,如果想补全s.st

可以执行:

s.st<Ctrl-x><Ctrl-o>

将会有:

startswith(prefix[, start[, end]])

strip([chars])

提示:

如果你创建了一个自定义类:

S = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

你可以用以下方法来进行补全s.send()方法:

S.s<Ctrl-x><Ctrl-o>

如果你已经安装了autocomplpop.vim, supertab.vim 或者其他补全插件,可能会出现意外的结果,尝试禁用这些插件看看。

详细请参考:http://blog.csdn.net/emmetyoung/article/details/7417459

http://blog.163.com/yungang_z/blog/static/17515313320113152438330/

3. snipmate

3.1 安装

下载snipmate.zip:http://www.vim.org/scripts/script.php?script_id=2540

直接解压到~/.vim目录下即可,可能需要安装zip/unzip等命令,直接sudo apt-get install unzip

3.2 使用

同pydiction,直接在VIM中直接用 <Tab> 键就可以实现自动补全。

如在vim中键入 os.pa<Tab> 后出现的自动补全界面。

详细请参考:/article/5159230.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: