【问题标题】:vim - how to use complete_check() on mappingvim - 如何在映射上使用 complete_check()
【发布时间】:2020-08-01 17:38:44
【问题描述】:

在集成 ultisnip 和 supertab 时 - 我正在尝试映射 F7,因此如果要使用 supertab 或 ultisnip 完成 - 尝试完成,否则如果没有建议的模式(并且 ultisnip 无法扩展),ultisnip forwardsJump。

但是 complete_check() 总是返回 0

let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<C-l>"
imap <expr> <F7> complete_check() == 0 ? "<\tab>" : "\<C-l>"

有人可以帮我完成它吗? 谢谢!!

【问题讨论】:

    标签: vim mapping ultisnips supertab


    【解决方案1】:

    来自:help complete_check()

    Check for a key typed while looking for completion matches.
    This is to be used when looking for matches takes some time.
    Returns |TRUE| when searching for matches is to be aborted,
    zero otherwise.
    Only to be used by the function specified with the
    'completefunc' option.
    

    您确定 complete_check() 是适合这项工作的工具吗?

    【讨论】:

    • 我找不到其他任何东西。我正在寻找任何可以告诉我是否需要完成的函数或变量。我现在发现的唯一一个是 pumvisible() 但那是在尝试完成之后..
    • 完成是动态完成的,因此您只能在 要求完成之后知道是否可以完成。请参阅:help completion_info(),它可以用作快速:help complete() 函数的一部分或更多涉及的:help complete-functions。对于您的用例,:help pumvisible() 似乎是最好的方法。
    • 谢谢,我是这个代码和 vim 世界的新手。我会按照您的建议尝试阅读和使用 :help pumvisible()
    猜你喜欢
    • 2022-12-11
    • 2012-07-04
    • 2014-12-07
    • 1970-01-01
    • 2017-12-27
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多