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

3
这个问题真的让我很困扰。我在我的vim 8.0编辑器上安装了YouCompleteMeUltiSnips两个插件。看起来这两个插件都使用tab键来完成自动补全,这就造成了一个不兼容的问题,也被这个问题所解决。但是我的问题更具体,当我编写类似于<html这样的代码时,会弹出一个菜单显示与该代码相关的所有片段。

YCM pop-up menu for UltiSnips snippets

我使用tab键浏览菜单,但是当我按下ctrl+y以接受并展开其中一个代码片段时,什么也没有发生!我认为这种结构表明可以在不尝试为UltiSnip定义快捷方式的情况下从菜单中选择其中一个片段。我做错了什么?我应该如何浏览和选择这些代码片段呢?

我也不想为我的vim添加任何新插件(如supertab等)。

1个回答

0

解决方案实际上比我预期的要简单得多。一开始,我感到很愚蠢,因为不知道它,但当我找到一个类似的问题,比如this one,我想可能有很多人都掉进了同样的陷阱。

我不知道是否应该称其为错误,但这是Ultisnips和YouCompleteMe共同工作的方式。为了展开片段,您必须完全按照定义编写初始化程序。当然,这似乎很明显,但当您看到不同片段的弹出菜单时,您可能会认为它们可以选择,但只有在您已经完全按照定义编写片段初始化程序时才能使用。

因此,当片段被称为“html5”时,正如我的问题所示,写入额外的开括号(<)将导致其停止工作。它无法展开。

UltiSnips the correct way to expand a snippet from the pop-up menu

UltiSnips the wrong way to expand a snippet from the pop-up menu


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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接