首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SuperTab或alternative配置复杂的自动完成

如何使用SuperTab或alternative配置复杂的自动完成
EN

Stack Overflow用户
提问于 2015-11-10 06:18:26
回答 1查看 1.8K关注 0票数 0

我在用SuperTab。默认情况下,它允许我自动完成所有早期使用的文本部分。但是,我还需要自动完成一些语言或文件。

目前,我可以用can来做全身性手术,但这不方便。可以在选项卡上配置所有自动完成吗?

例如,我希望自动完成PHP函数名str_。如果函数不存在,那么脚本必须使用默认的vim自动完成。

任何帮助都将不胜感激!非常感谢!

更新

这是我的SuperTab配置

代码语言:javascript
复制
" Supertab
let g:SuperTabDefaultCompletionType = "context"
let g:SuperTabCompletionContexts = ['s:ContextText', 's:ContextDiscover']
let g:SuperTabContextTextOmniPrecedence = ['&omnifunc', '&completefunc']
let g:SuperTabContextDiscoverDiscovery =
            \ ["&completefunc:<c-p>", "&omnifunc:<c-x><c-o>"]

这种方法只对php使用omnicompletion,但在当前缓冲区中不使用自动完成另一个文本,这仅在我使用<c-p>时才能使用。

当我在.vimrc中添加下一行时:

代码语言:javascript
复制
autocmd FileType *
            \if &omnifunc != '' |
            \call SuperTabChain(&omnifunc, "<c-p>")
            \endif

<c-p>无效

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-10 08:39:10

SuperTab提供了两种机制:上下文完成机制和完成链接机制,这两种机制都记录在其帮助页中。

简而言之,如果光标之前的文本匹配某个模式(比如变量或类名),前者可以切换到不同的(如omni)完成。后者首先尝试omnicompletion,如果没有匹配,则返回到正常的插入完成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33624056

复制
相关文章

相似问题

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