Snipmate不再扩张

时间:2015-05-13 19:14:10

标签: vim snipmate

Snipmate用于扩展片段,但它停止了工作。我换了几个 我的vimrc中没有相关的东西,但我不知道是什么导致了它(我没有 备份旧文件。)

到目前为止我的调查:

  • 按下标签不会展开而是插入空格,请检查:verbose imap

    i  <Tab>       * =TriggerSnippet()<CR>
             Last set from ~\vimfiles\bundle\snipmate.vim\after\plugin\snipMate.vim

  • 似乎合理,我想知道如果手动输入<C-R>=TriggerSnippet()<CR>会发生什么?同样的结果,插入了空格。怪异。

  • 我在一些:echo语句中编辑了TriggerSnippet()源代码,显然函数根本没有执行过?
  • 在Python文件中键入def,将光标放在f或其旁边的空格上,输入:call TriggerSnippet()。这次函数实际运行(调试回声可见),但没有扩展。但也许它真的想从插入模式调用,而不是从ex。
  • 调用
  • 运行我在this question中找到的以下代码,结果为空:

    fun! GetSnipsInCurrentScope()
         let snips = {}
         for scope in [bufnr('%')] + split(&ft, '.') + ['_']
             call extend(snips, get(s:snippets, scope, {}), 'keep')
             call extend(snips, get(s:multi_snips, scope, {}), 'keep')
         endfor
         return snips
     endf
     echo keys(GetSnipsInCurrentScope())
     ----> []

怪异。为什么我可以通过ex命令而不是TriggerSnippets运行<C-R>=?什么意思没有定义片段?更重要的是,我该如何解决?

至于我的配置,我的vimrc中没有提到Snipmate,我在Win7上的Vim 7.4上通过病原体安装它,它以前工作过。我使用了Snipmate的最新git版本(昨天安装它并且工作正常),并且git树很干净(除了少数调试语句,但它没有它们也没有用。)

编辑在显眼编译器对s:变量的解释后更新。

编辑2:我使用病原体安装的插件:ctrlp-py-matcher ctrlp.vim, 绝地,VIM, pytest-VIM编译器, 蟒蛇模式, snipmate.vim, syntastic, VIM-的EasyMotion, VIM-逃犯, VIM懂事, VIM-猎犬,

1 个答案:

答案 0 :(得分:0)

我从一个安装的古代存储库中获得了一个snipmate克隆。我仍然不知道为什么它起作用然后突然停止了。

其他人的专业提示:检查你从哪里获取嫌犯。它需要(在撰写本文时):

https://github.com/garbas/vim-snipmate

如果你正在使用 snipmate.vim ,请删除它并安装正确的。请注意,新的vim-snipmate还有一些您需要安装的依赖项(请参阅github repo)。

如果您已经在处理事情,您可能还会考虑直接切换到 ultisnips ,这似乎是现代(2015)替代snipmate。但它需要一个带+ python支持的vim。