【问题标题】:How to expand an UltiSnips snippet using <c-y> in the YouCompleteMe pop-up menu?如何在 YouCompleteMe 弹出菜单中使用 <c-y> 展开 UltiSnips 片段?
【发布时间】:2020-04-28 07:55:19
【问题描述】:

这个问题真的让我很头疼。我的 vim 8.0 编辑器上同时安装了 YouCompleteMeUltiSnips。似乎这两个插件都使用 tab 键进行自动完成,这造成了this question. 也解决的不兼容问题,不过我的问题更具体。当我编写像&lt;html 这样的代码时,会有一个弹出菜单显示该代码的所有相关sn-ps。

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

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

【问题讨论】:

    标签: vim youcompleteme ultisnips


    【解决方案1】:

    解决方案实际上比我预期的要简单得多。一开始还觉得自己很傻,不知道,但是当我发现类似this one的问题时,我想可能很多人都落入了同一个陷阱。

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

    因此,当 sn-p 被称为“html5”时——正如我的问题所示——编写一个额外的左括号 (


    另外,不要忘记查看Siegfried Gevatter 配置。不能同时使用 tab 键来导航到弹出菜单和展开 sn-ps。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多