Snipmate 曾经扩展片段,但它停止工作。我在 vimrc 中更改了一些不相关的东西,但我不知道是什么原因造成的(而且我没有旧文件的备份)。
到目前为止我的调查:
按制表符不会展开,而是插入空格,检查
:verbose imap
:i <Tab> * =TriggerSnippet()<CR> 最后一组来自 ~\vimfiles\bundle\snipmate.vim\after\plugin\snipMate.vim
看起来很合理,我想知道如果我
<C-R>=TriggerSnippet()<CR>
手动输入会发生什么?同样的结果,插入了空格。诡异的。- 我在源代码中编辑了几条
:echo
语句TriggerSnippet()
,显然该函数根本没有执行? - 输入
def
一个 Python 文件,将光标放在f
或 旁边的空格上,输入:call TriggerSnippet()
. 这次函数实际运行(调试回显可见),但没有扩展。但也许它真的想从插入模式调用,而不是从 ex。 运行我在这个问题中找到的以下代码给出了一个空结果:
乐趣!GetSnipsInCurrentScope() 让剪断 = {} 对于 [bufnr('%')] + split(&ft, '.') + ['_'] 中的范围 调用 extend(snips, get(s:snippets, scope, {}), 'keep') 调用 extend(snips, get(s:multi_snips, scope, {}), 'keep') 结束 返回剪断 结束 回显键(GetSnipsInCurrentScope()) ----> []
诡异的。为什么我可以TriggerSnippets
通过 ex 命令而不是 via运行<C-R>=
?没有定义片段是什么意思?更重要的是,我该如何解决?
至于我的配置,我的 vimrc 中没有提到 Snipmate,我在 Win7 上的 Vim 7.4 上通过病原体安装了它,它以前工作过。我正在使用 Snipmate 的最新 git 版本(昨天安装它并且它工作)并且 git 树是干净的(除了少数调试语句,但没有它们也不起作用)。
编辑:在显着编译器对s:
变量的解释之后更新。
编辑 2:我使用 Pathogen 安装的插件:ctrlp-py-matcher ctrlp.vim、jedi-vim、pytest-vim-compiler、python-mode、snipmate.vim、syntastic、vim-easymotion、vim-fugitive、vim-sensible ,vim侦探,