为了说明我的问题,这里有一个简单的例子,说明Omnicomplete是如何在我的机器上工作的:
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)我期待最后一行扩展到print或print(或类似的内容。这是正确的行为(Omnicomplete只对python/3进行方法完成)吗?如果是这样的话,在最后一个例子中,函数完成会成为代码片段的一个例子吗?
我在终端中使用MacVim和tmux。我的:version说VIM8.0。我有+python/dyn和+python3/dyn特性。我的~/.vimrc有这一行(除其他外):
autocmd FileType python set omnifunc=python3complete#Complete现在,我只是在编辑python3文件,所以我认为omnifunc=python3...是可以的。
半相关SO:Vim omnicomplete和系统Python的问题
编辑:--我可能有一个解决办法,尽管我不知道如何实现它。
注意到:
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>前面的字符串中没有.,那么它可能假定是.吗?
任何建议我都会听的。
发布于 2019-03-12 14:25:03
您是否尝试过将以下内容用于综合功能:
autocmd FileType python set omnifunc=syntaxcomplete#Complete发布于 2020-02-23 17:50:44
只需设置Omni完成,就像Vim Wiki中推荐的那样,它将适用于所有语言:
filetype plugin on
set omnifunc=syntaxcomplete#Completehttps://stackoverflow.com/questions/41578873
复制相似问题