如何在VIM中向snipMate添加新的代码段

Omn*_*ent 11 vim snipmate

我刚刚开始使用sniptMate插件为VIM而且喜欢它,但是,因为我的片段集并不大,我希望能够动态添加新的片段,而不是打开片段文件并创建一个新的片段,因为我我正处于发展的中间.

当我正在编写代码时,我意识到某些特定的代码片段可以保存为片段,以免我再次输入膨胀代码的麻烦,此时我希望能够在不打开语言的代码段文件的情况下添加代码片段我当时正在使用.

vik*_*red 9

如果您正在使用病原体,您可以编写自己的代码段而不会污染原始代码段.为此,请将您的代码段添加到~/.vim/bundle/mysnippets/snippets/*.snippets.仅供参考,mysnippets可以是任何名称.

此外,_.snippets在该目录中添加文件是一种惯例,您可以在该目录中添加应该在任何地方都可用的片段,而不管文件类型如何.


小智 5

我不确定它是否意味着这样做但你可以尝试MakeSnip从你正在处理的文件中调用该函数.例如:

:call MakeSnip(&ft, "foo", "<foo>${1}</foo>")
Run Code Online (Sandbox Code Playgroud)

&ft将传递您当前正在编辑的文件的文件类型,"foo"是触发器并且"<foo>${1}</foo>"是替换文本.

当然,像这样创建的片段不会持久.那么为什么不在另一个缓冲区中打开片段文件,根据需要在那里定义新的片段,然后执行:

:call ReloadSnippets(&ft)
Run Code Online (Sandbox Code Playgroud)

并且您的新代码段将可用.您甚至可以定义一个autocmd来ReloadSnippets在编写片段文件时调用该函数.


小智 5

您可以放入自己的摘要,也可以放入~/.vim/after/snippets/Windows上的任何摘要...阅读:h snipMate文件名语法。