在Vim中键入时,如何获得阵列选项的自动建议?

问题描述

| 假设我输入
a = [1,2]
在vim中的.py文件中,当我键入\“ a。\”并单击TAB时,我想获取与列表相关的建议菜单。 编辑1以回应Robin的评论: 我认为这在vim中是可能的,因为有一个插件可以检查给定的python代码是否为有效代码(我不知道该插件叫什么)。看一看:     

解决方法

        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,您应该会看到一个弹出菜单,如下所示: 您也可以在插入模式下使用(在vimrc中)将其绑定到tab键:
inoremap <Tab> <C-x><C-o>
要了解有关与出现的下拉菜单进行交互的更多信息,请尝试
:help ins-completion
    ,        阅读有关将Vim设置为Python IDE的众多博客文章之一。这是一个入门的方法。特别是,您对OmniComplete函数感兴趣。 默认情况下,此键绑定到Ctrl-xCtrl-o键,但是您可以将其重新绑定到Tab键。 请注意,它对变量的类型不敏感。如果您输入以下内容,它可以为您完成:
string.<ctl-x><ctl-o>
您将获得字符串对象方法的列表。但是,如果您按照问题中的描述进行操作,则可能会出现以下情况:
x = \"a string\"

x.<ctl-x><ctl-o>
vim不会知道变量ѭ9包含一个字符串,因此将无法提供方法列表。 有关全能的信息:
:help omnifunc
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...