如何在 YouCompleteMe 弹出菜单中使用 <c-y> 扩展 UltiSnips 片段?

How to expand an UltiSnips snippet using <c-y> in the YouCompleteMe pop-up menu?

这个问题真的让我很头疼。我有两个 YouCompleteMe and UltiSnips installed on my vim 8.0 editor. It seems that both of these plugins use the tab key for doing the auto-completion and that has created an incompatibility that has been also addressed by this question. 不过我的问题更具体。当我写一段像 <html 这样的代码时,会出现一个弹出菜单,向我显示该代码的所有相关片段。

我使用 tab 键浏览该菜单,但是当我按 ctrl+y 接受并展开其中一个菜单时片段,没有任何反应!我认为这种结构表明可以以某种方式从菜单中选择其中一个片段,而无需尝试为 UltiSnip 定义快捷方式。我究竟做错了什么?我应该如何导航和选择这些片段?

我也不想用任何新插件(如 supertab 等)填充我的 vim。

解决方案实际上比我预期的要简单得多。一开始觉得傻傻的不知道,后来看到类似this one的问题,我想应该很多人都掉进了同样的陷阱吧

我不知道是否将其命名为错误,但这就是 Ultisnips 和 YouCompleteMe 协同工作的方式。为了扩展片段,您必须完全按照定义来编写初始化程序 当然,这看起来很明显,但是当您看到不同片段的弹出菜单时,您可能认为可以选择它们,但只有在您已经完全按照定义编写代码段初始化程序时才有效。

因此,当一个片段被调用时 "html5"--- 正如我的问题中所示---写一个额外的左括号 (<) 将导致它停止工作。无法展开。


另外,不要忘记检查 Siegfried Gevatter 配置。无法同时使用 tab 键导航到弹出菜单和展开片段。

P.S. 如果通过弹出菜单导航可以更改整个单词(包括尖括号),而不仅仅是它后面的内容,那就太好了。这个功能在我见过的大多数其他编辑器中都是这样工作的,这可能就是我一开始没能发现问题的原因。