文档章节

启用 VIM 中的 Python 自动补全及提示功能

Airship
 Airship
发布于 2015/12/29 14:54
字数 716
阅读 855
收藏 0

周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studio 一样自动补全和提示。

其实,只是VIM 太低调,大家不知道而已。

 

这里介绍一下 python omni complete, 安装启用之后,是这个样子的:

1. 如何安装 'Python omni complete' plugin.

如果是VIM7.3,不需要再下载 pythoncomplete.vim 这个插件,因为安装时自带了。
但是, 必须保证编译安装 VIM 的时候启用了 Python 特性, 即

./configure --with-features=huge --enable-pythoninterp=yes

因为,pythoncomplete.vim 是用 python 写的。

我们可以在vim autoload 目录下看到

ls -la /usr/local/share/vim/vim73/autoload/  
  
    drwxr-xr-x  3 root root   4096 2011-02-16 16:29 .  
    drwxr-xr-x 17 root root   4096 2011-02-16 16:29 ..  
    -rw-r--r--  1 root root   3669 2011-02-16 16:29 adacomplete.vim  
    -rw-r--r--  1 root root  22439 2011-02-16 16:29 ada.vim  
    -rw-r--r--  1 root root  16938 2011-02-16 16:29 ccomplete.vim  
    -rw-r--r--  1 root root  15922 2011-02-16 16:29 csscomplete.vim  
    -rw-r--r--  1 root root   2998 2011-02-16 16:29 decada.vim  
    -rw-r--r--  1 root root  23804 2011-02-16 16:29 getscript.vim  
    -rw-r--r--  1 root root   5331 2011-02-16 16:29 gnat.vim  
    -rw-r--r--  1 root root   6093 2011-02-16 16:29 gzip.vim  
    -rw-r--r--  1 root root  24253 2011-02-16 16:29 htmlcomplete.vim  
    -rw-r--r--  1 root root  27028 2011-02-16 16:29 javascriptcomplete.vim  
    -rw-r--r--  1 root root  10130 2011-02-16 16:29 netrwFileHandlers.vim  
    -rw-r--r--  1 root root   8684 2011-02-16 16:29 netrwSettings.vim  
    -rw-r--r--  1 root root 338720 2011-02-16 16:29 netrw.vim  
    -rw-r--r--  1 root root   1232 2011-02-16 16:29 paste.vim  
    -rw-r--r--  1 root root 293714 2011-02-16 16:29 phpcomplete.vim  
    -rw-r--r--  1 root root  21507 2011-02-16 16:29 python3complete.vim  
    -rw-r--r--  1 root root  22019 2011-02-16 16:29 pythoncomplete.vim  
    -rw-r--r--  1 root root    773 2011-02-16 16:29 README.txt  
    -rw-r--r--  1 root root  23443 2011-02-16 16:29 rubycomplete.vim  
    -rw-r--r--  1 root root   6184 2011-02-16 16:29 spellfile.vim  
    -rw-r--r--  1 root root  30201 2011-02-16 16:29 sqlcomplete.vim  
    -rw-r--r--  1 root root  16839 2011-02-16 16:29 syntaxcomplete.vim  
    -rw-r--r--  1 root root  21145 2011-02-16 16:29 tar.vim  
    -rw-r--r--  1 root root  12646 2011-02-16 16:29 tohtml.vim  
    -rw-r--r--  1 root root  23031 2011-02-16 16:29 vimball.vim  
    drwxr-xr-x  2 root root   4096 2011-02-16 16:29 xml  
    -rw-r--r--  1 root root  14933 2011-02-16 16:29 xmlcomplete.vim  
    -rw-r--r--  1 root root  11906 2011-02-16 16:29 zip.vim

如果没有,则下载 pythoncomplete.vim, 并复制到 ~/.vim/autoload/ 目录下。

2. 如何启用自动补全
在 ~/.vimrc 中添加这样两行

filetype plugin on  
autocmd FileType python set omnifunc=pythoncomplete#Complete

此时,我们就完成了安装及配置工作。

3. 如何使用自动补全
例如我们输入

import sys  
print sys.

 此时, 按下 Ctrl+x, Ctrl+o, 就能看到提示列表框,以及对应的 docstring.


Ctrl+n, Ctrl+p 来上下选择

ESC 来取消提示框。

 

 

4. 不足之处

a. 属性没有 docstring, 只有函数有。

:( 这个似乎不好搞,因为属性似乎没有 docstring 这个概念。

b. 在没有下拉框的情况下,没有 docstring.

 

好在, pythoncomplete.vim 是 python 写的,有空大家可以自己完善一下。









本文转载自:http://zhongwei-leg.iteye.com/blog/941474

共有 人打赏支持
Airship
粉丝 38
博文 908
码字总数 19854
作品 0
南京
高级程序员
私信 提问
【原创】如何在vim中使用tab进行python代码补全

Pydiction : Tab-complete your Python code Pydiction 允许你在 Vim 中实现 TAB 代码补全, 可以补全的内容包括:标准的、自定义的,以及第三方模块和包。外加关键字、BIFs,和字符串。 Pydi...

摩云飞
2013/10/23
0
6
Vim as Python IDE on windows

下载安装Python。 从Vim的网站下载vim,建议下Self-installing executable的版本。 编辑vim的配置文件_vimrc 拷贝vimrcexample里面的东东到vimrc 去掉vimrc里面的source $VIMRUNTIME/vimrcexa...

quanpower
2013/01/02
0
0
windows上搭建python+gvim开发环境

参照了 http://www.cnblogs.com/xd502djj/archive/2010/09/16/1827683.html ,发现有些问题,所以修改了一些。 Vim as Python IDE on windows(转) 下载安装Python。 从Vim的网站下载vim,建...

云中不知人
06/27
0
0
windows上搭建python+gvim开发环境

参照了 http://www.cnblogs.com/xd502djj/archive/2010/09/16/1827683.html ,发现有些问题,所以修改了一些。 Vim as Python IDE on windows(转) 下载安装Python。 从Vim的网站下载vim,建...

云中不知人
06/27
0
0
Python开发环境配置 Vim + Ctags+ TagList

在 Linux 下对 vim 进行一些配置,使之支持如下特性: 1. 加强的 Python 语法高亮显示; 2. 对脚本、项目生成 ctag 序列; 3. 在 vim 中显示 ctag 序列列表; 4. Python 函数、类的自动补全;...

AlphaJay
2012/08/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

phper必知必会(二)

  1.说说你对进程,线程以及协程的理解      进程:是系统进行资源分配和调度的基本单位,是基本操作系统结构的基础。进程是程序基本执行的实体。进程与进程之间是独立的,拥有完全独立...

SEOwhywhy
12分钟前
0
0
Ubuntu16.04下安装docker

[TOC] 本文开发环境为Ubuntu 16.04 LTS 64位系统,通过apt的docker官方源安装最新的Docker CE(Community Edition),即Docker社区版,是开发人员和小型团队的理想选择。 1. 开始安装 1.1 由于...

豫华商
今天
10
0
使用XShell工具密钥认证登录Linux系统

如果你是一名Linux运维,那么Linux服务器的系统安全问题,可能是你要考虑的,而系统登录方式有两种,密码和密钥。哪一种更加安全呢? 无疑是后者! 这里我为大家分享用Xshell利器使用密钥的方...

dragon_tech
今天
8
0
day178-2018-12-15-英语流利阅读-待学习

“真蛛奶茶”了解一下?蜘蛛也会产奶了 Lala 2018-12-15 1.今日导读 “蛋白质含量是牛奶的 4 倍,并有着更低的脂肪和含糖量”,听起来诱人又美味的并不是羊奶或豆奶,而是你可能打死都想不到...

飞鱼说编程
今天
13
0
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents

场景重现 npm install --verbose 安装依赖的时,出现如下警告 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):npm WARN notsup SKIPPING OPTIONA......

taadis
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部