【发布时间】:2011-09-17 19:41:36
【问题描述】:
假设我打字
a = [1, 2]
在 vim 的 .py 文件中以及当我键入“a”时。并点击 TAB,我想获得与列表相关的建议菜单。
编辑 1 以回应 Robin 的评论: 我认为这在 vim 中是可能的,因为有一个插件可以检查给定的 python 代码是否是有效代码(我不知道插件叫什么)。看看:
【问题讨论】:
标签: python vim autocomplete intellisense
假设我打字
a = [1, 2]
在 vim 的 .py 文件中以及当我键入“a”时。并点击 TAB,我想获得与列表相关的建议菜单。
编辑 1 以回应 Robin 的评论: 我认为这在 vim 中是可能的,因为有一个插件可以检查给定的 python 代码是否是有效代码(我不知道插件叫什么)。看看:
【问题讨论】:
标签: python vim autocomplete intellisense
阅读有关将 Vim 设置为 Python IDE 的众多博文之一。 Here's one 让您开始。特别是,您对 OmniComplete 功能感兴趣。
这默认绑定到按键 Ctrl-xCtrl-o 但您可以将其重新绑定到 tab 键。
请注意,它对变量的类型不敏感。如果您键入,它可以为您完成:
string.<ctl-x><ctl-o>
您将获得字符串对象方法的列表。但是如果你按照你在问题中描述的那样做:
x = "a string"
x.<ctl-x><ctl-o>
vim 将不知道变量x 包含一个字符串,并且无法提供方法列表。
关于全能的信息:
:help omnifunc
【讨论】:
最近版本的 vim 带有一个名为 pythoncomplete 的全能完成脚本。
打开一个python文件,输入
:set completefunc?
检查当前完成功能是什么。如果你回来了
completefunc=
那么当前没有设置完成功能。您可以通过键入
将 pythoncomplete 设置为完成函数:set completefunc=pythoncomplete#Complete
您可以使用(在您的 vimrc 中)将其设置为 python 文件的默认值
autocmd FileType python set completefunc=pythoncomplete#Complete
现在当你在 vim 中时,你可以通过 Ctrl+X Ctrl+O 来使用omnicomplete,你应该会得到一个如下所示的弹出菜单:
你也可以在插入模式下将它绑定到 tab 键(在你的 vimrc 中):
inoremap <Tab> <C-x><C-o>
要了解有关与出现的下拉菜单交互的更多信息,请尝试
:help ins-completion
【讨论】: