如何在vim中使用tab进行python代码补全

如题所述

我这里要介绍的功能叫"new-omni-completion(全能补全)", 你可以用下面的命令看看介绍:

:help new-omni-completion
你还需要在~/.vimrc文件中增加下面两句:

filetype plugin indent on
打开文件类型检测, 加了这句才可以用智能补全

set completeopt=longest,menu
关掉智能补全时的预览窗口

请确定你的Ctags 已经安装好, 并且生成的tags文件已经可以用了, 那么我们就要抄家伙开搞了.
用vim打开源文件

$ vim /home/wooin/vim71/src/main.c (linux下的,文件是一样的。)
设置tags文件

:set tags=/home/wooin/vim71/tags
随便找一个有成员变量的对象, 比如"parmp",
进入Insert模式, 将光标放在"->"后面,
然后按下"Ctrl+X Ctrl+O",, 显示所有匹配的标签,。

如果你增加了一些成员变量, 全能补全还不能马上将新成员补全, 需要你重新生成一下tags文件, 但是你不用重启vim, 只是重新生成一下tags文件就行了,
这时全能补全已经可以自动补全了。
vim中的其他补全方式还有:

Ctrl+X Ctrl+L 整行补全 Ctrl+X Ctrl+N
根据当前文件里关键字补全

Ctrl+X Ctrl+K
根据字典补全 Ctrl+X Ctrl+T
根据同义词字典补全

Ctrl+X Ctrl+I
根据头文件内关键字补全 Ctrl+X Ctrl+]
根据标签补全

Ctrl+X Ctrl+F
补全文件名 Ctrl+X Ctrl+D
补全宏定义

Ctrl+X Ctrl+V
补全vim命令 Ctrl+X Ctrl+U
用户自定义补全方式

Ctrl+X Ctrl+S
拼写建议

是不是还是觉得没有tab方便?好的,人家开发了一个叫做supertab.vim这个插件。安装后,
在你的~/.vimrc文件中加上这两句:

let g:SuperTabRetainCompletionType=2
let g:SuperTabDefaultCompletionType="<C-X><C-O>"
以后当你准备按"Ctrl+X
Ctrl+O"的时候直接按<Tab>就好了,这下你满足了吧。

我稍微再介绍一下上面那两句配置信息:

let g:SuperTabDefaultCompletionType="<C-X><C-O>"
" 设置按下<Tab>后默认的补全方式, 默认是<C-P>, “
现在改为<C-X><C-O>. 关于<C-P>的补全方式,
" 还有其他的补全方式,
你可以看看下面的一些帮助:
" :help ins-completion
" :help compl-omni

let g:SuperTabRetainCompletionType=2
" 0 -
不记录上次的补全方式
" 1 - 记住上次的补全方式,直到用其他的补全命令改变它
" 2 - 记住上次的补全方式,直到按ESC退出插入模式为止
温馨提示:答案为网友推荐,仅供参考
相似回答