在Vim中输入时如何获得数组选项的自动建议?

时间:2011-06-18 15:05:32

标签: python vim autocomplete intellisense

enter image description here

假设我输入

a = [1, 2]

在vim中的.py文件中,当我输入“a”时。并点击TAB,我想获得与列表相关的建议菜单。

编辑1以回应罗宾的评论: 我认为这在vim中是可能的,因为有一个插件可以检查给定的python代码是否是一个有效的代码(我不知道该插件的调用内容)。看看:

enter image description here

2 个答案:

答案 0 :(得分:7)

最新版本的vim带有一个名为pythoncomplete的omnicompletion脚本。

打开python文件,然后输入

:set completefunc?

检查当前的完成功能是什么。如果你回来了

completefunc=

然后当前没有设置完成功能。您可以通过键入

将pythoncomplete设置为完成功能
:set completefunc=pythoncomplete#Complete

你可以使用(在你的vimrc中)将它设置为python文件的默认值

autocmd FileType python set completefunc=pythoncomplete#Complete

现在当你在vim中时,你可以使用 Ctrl + X Ctrl + O 来使用omnicomplete,你应该得到一个弹出菜单,如下所示:

list completion

您也可以使用(在您的vimrc中)

将其与插入模式中的Tab键绑定
inoremap <Tab> <C-x><C-o>

要了解有关与显示的下拉菜单进行交互的详情,请尝试

:help ins-completion

答案 1 :(得分:3)

阅读关于将Vim设置为Python IDE的众多博客文章之一。 Here's one让你入门特别是,您对OmniComplete函数感兴趣。

这默认绑定到按键 Ctrl-x Ctrl-o ,但您可以将其重新绑定到Tab键。

请注意,它对变量的类型不敏感。如果您输入以下内容,它可以为您完成:

string.<ctl-x><ctl-o>

您将获得字符串对象方法的列表。但是如果你按照你在问题中描述的那样做:

x = "a string"

x.<ctl-x><ctl-o>

vim不会知道变量x包含字符串,并且无法提供方法列表。

有关omnicomplete的信息:

:help omnifunc