是否可以在snipmate中包含文件中的片段

时间:2012-07-01 06:21:15

标签: arduino vim

我正在使用这些vim-snipmatesnippets插件。

我目前正在为Arduino创建一个代码段文件。我意识到c语言的所有片段对Arduino都有好处。

我不是只复制粘贴它们,而是考虑包含整个c文件,然后只添加Arduino特定部分。

所以我的问题是,是否可以将其他文件中的代码段包含在您的代码段文件中?

5 个答案:

答案 0 :(得分:3)

(在搜索了snipmate插件的文档后,我找到了这个问题的答案)

我无法在另一个代码段文件中包含代码段文件,但我可以为某种文件类型添加多个代码段。我现在在我的.vimrc中声明了以下内容并且它可以正常工作。

" Add c snippets to Arduino
let g:snipMate = {}
let g:snipMate.scope_aliases = {} 
let g:snipMate.scope_aliases['arduino'] = 'arduino,c'

我正在使用我创建的arduino snippets

答案 1 :(得分:2)

@Sudar:你的方法很好,但如果你有另一个配置或lang后来没有必要,你的vimrc会膨胀。

只需在snipmate中创建arduino.snippets,然后:set ft=c.arduino。 Snipmate由于其文件类型

而识别出片段

答案 2 :(得分:1)

你特别询问了snipmate,所以这可能有点不合适,但无论如何:还有一个名为UltiSnips的插件,与snipmate非常相似(带有一些额外的功能)。在UltiSnips的代码段文件中,您可以使用与您要求完全相同的extends语句。

答案 3 :(得分:0)

没有。您需要将这些片段抽取/粘贴到您的arduino.snippets文件中。

答案 4 :(得分:0)

将以下内容添加到$VIMRUNTIME/after/plugin/snipMate.vim文件中:

call ExtractSnipsFile(g:snippets_dir.'arduino.snippets', 'c')

这将解析并初始化arduino.snippets文件类型的.c文件。

基本上它只是加载该文件的片段,并将它们添加到指定的文件类型中,在您的c文件中。

有关使用ExtractSnipsFile的帮助,请参阅:help ExtractSnipsFile or see the Doc file on GitHub

编辑2018.03.14

可以使用UltiSnipsAddFiletypes为同一文件类型加载多个代码段文件。 例如,如果您想在编辑.c文件时加载.arduino代码段,只需将以下行添加到ftplugins/arduino.vim UltiSnipsAddFiletypes arduino.c