2

我正在使用带有这些片段的vim-snipmate插件。

我目前正在为 Arduino 创建一个片段文件。我意识到 c 语言的所有片段也适用于 Arduino。

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

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

4

5 回答 5

3

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

我不能在另一个片段文件中包含一个片段文件,但我可以为某种文件类型包含多个片段。我现在在我的 .vimrc 中声明了以下内容并且它可以工作。

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

我将它与我创建的arduino 片段一起使用。

于 2012-07-01T07:32:45.833 回答
2

@Sudar:您的方法很好,但是如果您以后有另一个配置或语言,则没有必要,您的 vimrc 将变得臃肿。

只需arduino.snippets在 snipmate 中创建即可:set ft=c.arduino。Snipmate 根据其文件类型识别片段

于 2012-07-01T09:39:00.073 回答
1

您专门询问了 snipmate,所以这可能有点离题,但无论如何:还有一个名为 UltiSnips 的插件,它与 snipmate 非常相似(具有一些附加功能)。在 UltiSnips 的片段文件中,您可以使用完全符合您要求的 extends 语句。

于 2012-07-01T09:58:48.660 回答
0

不,您需要将这些片段复制/粘贴到您的 arduino.snippets 文件中。

于 2012-07-01T06:31:51.467 回答
0

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

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

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

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

有关使用的帮助,ExtractSnipsFile请参阅:help ExtractSnipsFile 或查看 GitHub 上的 Doc 文件

编辑 2018.03.14

可以使用UltiSnipsAddFiletypes. 例如,如果您想.c在编辑.arduino文件时加载片段,只需将以下行添加到您的ftplugins/arduino.vim: UltiSnipsAddFiletypes arduino.c

于 2013-04-17T09:22:35.297 回答