VIM - 如何同时使用 supertab.vim 和 snipMate.vim?

VIM - 如何同时使用 supertab.vim 和 snipMate.vim?

我正在使用 vim,发现了两个很好用的插件 -剪辑工具,模仿 textmate 的片段行为,并且超级标签,根据当前/其他缓冲区中的现有单词,使用 tab 键切换并完成单词。我已经使用 在我的 .vimrc 文件中打开了所有插件:filetype plugin on,但只有 supertab 可以工作。我怀疑由于 TAB 键用于两者,它们会相互覆盖。有人遇到过这种情况并找到了解决方法吗?我还不是编辑 .vimrc 文件、映射键等方面的专家。谢谢。

编辑

当我尝试单独强制加载 snipMate.vim 时,出现以下错误:

Error detected while processing /home/sa125/.vim/plugin/snipMate.vim:
line   15:
E122: Function <SNR>18_RemoveSnippet already exists, add ! to replace it
line   73:
E122: Function snipMate#expandSnip already exists, add ! to replace it
line  112:
E122: Function <SNR>18_ProcessSnippet already exists, add ! to replace it
line  123:
E122: Function <SNR>18_Count already exists, add ! to replace it
line  169:
E122: Function <SNR>18_BuildTabStops already exists, add ! to replace it
line  211:
E122: Function snipMate#jumpTabStop already exists, add ! to replace it
line  258:
E122: Function <SNR>18_UpdatePlaceholderTabStops already exists, add ! to replace it
line  302:
E122: Function <SNR>18_UpdateTabStops already exists, add ! to replace it
line  321:
E122: Function <SNR>18_SelectWord already exists, add ! to replace it
line  385:
E122: Function <SNR>18_UpdateChangedSnip already exists, add ! to replace it
line  434:
E122: Function <SNR>18_UpdateVars already exists, add ! to replace it  

我做错了吗?...

答案1

好的,我使用原始问题中链接的脚本让它工作了。

事实证明,我使用了 supersnipmate(snipmate 的一个分支),不幸的是,它删除了 snipmate 的内置 supertab 支持。

我也确实使用了托管在 vim.org 上的原始 supertab,但它与 snipmate 也无法很好地兼容。github 上的链接脚本原来是旧 supertab 的后继版本(或延续版本)。

答案2

我让两者合作得很好。

我的 .vimrc 中唯一相关的行是:

let g:SuperTabDefaultCompletionType = "context"

相关内容