1

我在 OSX Lion 上使用 vim 7.3。我从 github 上的 garbas/vim-snipmate 安装了 snipmate,但它似乎<tab>在某些地方<c-n>不起作用。

当我尝试对文件中的现有单词进行制表符补全,或者如果我想从我的 ctags 列表中对某些内容进行制表符补全时,我得到的只是添加了空格......但是<c-n>可以!

如果我自由输入 for <tab>,那确实有效。

为什么它在某些情况下没有完成,但在其他情况下却完成了?

4

1 回答 1

1

你一头雾水,<C-n>和 Snipmate 的标签扩展系统没有任何关系。

<C-n>是一个用于omnicompletion 的内置快捷方式:它允许您使用当前打开的缓冲区和其他一些来源中的其他单词来完成您当前正在输入的内容。

Snipmate<Tab>将任意存根扩展为完整的代码片段:

for<Tab>

会在 JS 文件中给你这个:

for (var i = 0; i < Things.length; i++) {

}

这不是一个完成机制。如果您没有为刚刚输入的几个字母定义特定语言的片段,Snipmate 将不会做任何事情:

function farting(){
    return "prrt!";
}

far<Tab>

不会扩展任何内容,因为您没有far片段,而omnicompletion 将以ting.

因为你希望你<Tab>做两件不相关的事情,你可能需要一个像SuperTab这样的插件。

于 2012-05-14T03:59:03.417 回答