我在OSX Lion上使用vim 7.3。我在github上安装了来自garbas / vim-snipmate的snipmate,<tab>
似乎<c-n>
在某些地方不起作用。{/ p>
当我尝试选项卡完成文件中的现有单词,或者如果我想从我的ctags列表中选项卡完成某些内容时,我得到的是添加的空格......但<c-n>
有效!
如果我自由输入<tab>
,那确实有用。
为什么在某些情况下没有完成,在其他情况下却没有完成?
答案 0 :(得分: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这样的插件。