在Vim中实现类似于Sublime Text 2的自定义自动完成功能

4

我刚刚了解到Sublime Text 2中的自动完成功能。

自动完成文件示例:

{
        "scope": "text.html - source - meta.tag, punctuation.definition.tag.begin",

        "completions":
        [
                { "trigger": "a", "contents": "<a href=\"$1\">$0</a>" },
                { "trigger": "abbr", "contents": "<abbr>$0</abbr>" },
                { "trigger": "acronym", "contents": "<acronym>$0</acronym>" }
        ]
}

我尝试搜索类似的Vim插件,但是没有找到。

是否存在类似的Vim插件?最好使用简单易生成的格式,例如JSON、YAML等。

3个回答

4

我每天都知道并使用SnipMate。我想要部分自动完成,即在我输入一个字符后显示下拉菜单。 - Dogbert
3
尝试使用 <c-r><tab> 快捷键。有关更多信息,请查看 :h list-snippets - Peter Rincker
感谢 <C-r><Tab>!这是我本周的 Vim 小技巧。 - Conner
1
@Dogbert:SnipMate可以做到这一点(至少在使用garbas分支时可以)。当您键入片段的一部分并按Tab键时,您将获得任何匹配片段的下拉菜单。选择一个并按Tab键扩展。 - idbrii
@pydave,不错!如果有一种方法可以自动运行它,就像大多数IDE一样。并且在我键入不属于片段的内容或按下Escape时关闭。对此有什么想法吗? - Dogbert
这就是AutoComplPop的作用,但是针对标签。我不使用它,但你也许可以让AutoComplPop为代码片段工作(或者你可以提交一个功能请求)。 - idbrii

3

一个比SnipMate更新的替代品似乎是UltiSnips,但我自己还没有尝试过。

此外,vim内置的缩写支持也很不错,但我认为它们不支持比将短文本展开为长文本更复杂的内容。尽管如此,仍然非常有用。


1
我去过UltiSnips山,那里非常棒。强烈推荐! - dsummersl

0

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