首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vim中的Omnicomplete可以为python/3提供完整的函数名或仅仅是方法吗?

Vim中的Omnicomplete可以为python/3提供完整的函数名或仅仅是方法吗?
EN

Stack Overflow用户
提问于 2017-01-10 21:37:26
回答 2查看 2.4K关注 0票数 7

为了说明我的问题,这里有一个简单的例子,说明Omnicomplete是如何在我的机器上工作的:

代码语言:javascript
复制
name = "Bob"
na<C-x><C-o>      gives-----> name
name.<C-x><C-o>   gives-----> (correct dropdown menu of methods for string)
prin<C-x><C-o>    gives-----> (-- Omni completion (^O^N^P) Pattern not found)

我期待最后一行扩展到printprint(或类似的内容。这是正确的行为(Omnicomplete只对python/3进行方法完成)吗?如果是这样的话,在最后一个例子中,函数完成会成为代码片段的一个例子吗?

我在终端中使用MacVim和tmux。我的:version说VIM8.0。我有+python/dyn+python3/dyn特性。我的~/.vimrc有这一行(除其他外):

代码语言:javascript
复制
autocmd FileType python set omnifunc=python3complete#Complete

现在,我只是在编辑python3文件,所以我认为omnifunc=python3...是可以的。

半相关SO:Vim omnicomplete和系统Python的问题

编辑:--我可能有一个解决办法,尽管我不知道如何实现它。

注意到:

代码语言:javascript
复制
 import builtins
 builtins.pr<C-x><C-o>   gives-----> (dropdown menu with print() and property()    )
 builtins.pri<C-x><C-o>  gives-----> (autocompletes to builtins.print(             )

在不编写<C-x><C-o>和使用builtins对象的情况下,可以复制这个使用builtins的操作吗?如果<C-x><C-o>搜索中<C-x><C-o>前面的字符串中没有.,那么它可能假定是.吗?

任何建议我都会听的。

EN

回答 2

Stack Overflow用户

发布于 2019-03-12 14:25:03

您是否尝试过将以下内容用于综合功能:

代码语言:javascript
复制
autocmd FileType python set omnifunc=syntaxcomplete#Complete
票数 0
EN

Stack Overflow用户

发布于 2020-02-23 17:50:44

只需设置Omni完成,就像Vim Wiki中推荐的那样,它将适用于所有语言:

代码语言:javascript
复制
filetype plugin on
set omnifunc=syntaxcomplete#Complete
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41578873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档