Vim 维姆:如何让自动压缩、Snipmate和SuperTab一起工作?

Vim 维姆:如何让自动压缩、Snipmate和SuperTab一起工作?,vim,Vim,自动压缩自动弹出选项。我非常喜欢它 SuperTab允许我设置的功能。我总是设置如下。 设g:SuperTabDefaultCompletionType=“” 这样,如果AutoComplpPop弹出许多选项,则按可以选择下一个选项 Snipmate在Vim中实现了TextMate的一些代码片段功能 如果我一起安装,就会出现一些问题 例如,当我在test.py中键入cl并第一次按时。斯尼普马特工作。但是,当我第二次键入cl时,自动压缩弹出选项,包括class。如果我按,它会选择名为class的选

自动压缩自动弹出选项。我非常喜欢它

  • SuperTab允许我设置
    的功能。我总是设置如下。
    设g:SuperTabDefaultCompletionType=“”
    这样,如果AutoComplpPop弹出许多选项,则按
    可以选择下一个选项

  • Snipmate在Vim中实现了TextMate的一些代码片段功能

  • 如果我一起安装,就会出现一些问题

    例如,当我在test.py中键入
    cl
    并第一次按
    时。斯尼普马特工作。但是,当我第二次键入
    cl
    时,自动压缩弹出选项,包括
    class
    。如果我按
    ,它会选择名为
    class
    的选项,而Snipmate不起作用


    因此,任何使AutoComplpPop、Snipmate和SuperTab协同工作的解决方案?

    SuperTab似乎是离群值,这里:它的目的不是覆盖
    键,而是使用该
    键作为触发器(基本逻辑与ACP大致类似)来提供完成

    在我看来,您使用该插件的方式非常做作

    此映射允许您使用
    选择完成菜单中的下一项:

    inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<C-g>u\<Tab>"
    
    inoremap pumvisible()?“\”:“\u\”
    

    它的灵感来自于我的推荐。

    SuperTab似乎是离群值,在这里:它的目的不是覆盖
    键,而是使用
    键作为触发器(其底层逻辑大致类似于ACP)提供完成

    在我看来,您使用该插件的方式非常做作

    此映射允许您使用
    选择完成菜单中的下一项:

    inoremap <expr> <Tab> pumvisible() ? "\<C-n>" : "\<C-g>u\<Tab>"
    
    inoremap pumvisible()?“\”:“\u\”
    

    这是我推荐的灵感来源。

    谢谢。SuperTab+ACP工作正常。但是,SuperTab、ACP和Snipmate之间存在冲突。您的解决方案无法使Snipmate正常工作。目前,我只使用Snipmate+ACP,并使用
    CTRL+N
    选择完成菜单中的下一项。但是我仍然想使用
    来选择下一个项目。我的解决方案正好做到了这一点,并且完全消除了对SuperTab的需要,因为您似乎错误地使用了SuperTab。一、 同样,使用snipmate和ACP,此映射在我的测试中也很有效:ACP完成得很好,我可以通过建议
    ,而snipmate工作得很好。我删除SuperTab并重试。按
    可以选择下一个项目,而无需Snipmate。如果我同时使用ACP和Snipmate,当ACP弹出完成菜单并按
    时,我的代码中有一个选项卡(4个空格)。我注意到snipmate.vim有一段代码<代码>如果可见()。。。“关闭完成菜单并调用feedkeys(\”)。您使用哪个版本的snipmate?我使用msanders提供的原始snipmate。我也这样做。我删除了其他插件,只使用ACP和snipmate。我仍然无法使用
    选择下一项。我不知道为什么?我运行以下代码以查看映射到
    的内容:
    :verbose imap
    。我得到:
    *=triggerSnippet()
    ,由
    ~/.vim/bundle/snipmate.vim/after/plugin/snipmate.vim修改。谢谢。SuperTab+ACP可以正常工作。但是,SuperTab、ACP和snipmate冲突。您的解决方案无法使snipmate正常工作。目前,我只使用snipmate+ACP,并使用
    CTRL+N
    选择完成菜单中的下一项。但我仍然没有nt使用
    选择下一个项目。我的解决方案正好做到了这一点,并且完全消除了对SuperTab的需要,而您似乎无论如何都错误地使用了SuperTab。我也使用snipmate和ACP,这种映射在我的测试中效果很好:ACP完成得很好,我可以通过建议
    ,而snipmate工作得很好。我删除了SuperTab并重试。按
    可以选择下一项而不使用Snipmate。如果我同时使用ACP和Snipmate,当ACP弹出完成菜单并按
    时,我的代码中有一个选项卡(4个空格长)。我注意到Snipmate.vim有一段代码。
    如果pumvisible()…”关闭完成菜单并调用feedkeys("\")
    。您使用哪个版本的snipmate?我使用msanders提供的原始snipmate。我也这样做。我删除了其他插件,只使用ACP和snipmate。我仍然无法使用
    选择下一项。我不知道为什么?我运行以下代码以查看映射到
    的内容:
    :verbose imap
    。我得到:
    *=triggerSnippet()
    ,由
    ~/.vim/bundle/snipmate.vim/after/plugin/snipmate.vim修改