Arduino 是否可以在snipmate中包含文件的片段
我正在使用这些插件 我目前正在为Arduino创建一个代码段文件。我意识到c语言的所有代码片段也适用于Arduino 我不只是复制粘贴它们,而是考虑包含整个c文件,然后只添加特定于Arduino的部分Arduino 是否可以在snipmate中包含文件的片段,arduino,vim,Arduino,Vim,我正在使用这些插件 我目前正在为Arduino创建一个代码段文件。我意识到c语言的所有代码片段也适用于Arduino 我不只是复制粘贴它们,而是考虑包含整个c文件,然后只添加特定于Arduino的部分 因此,我的问题是,是否可以将其他文件中的代码片段包含到您的代码片段文件中?否。您需要将这些代码片段拉/粘贴到您的arduino.snippets文件中。(在搜索snipmate插件的文档后,我找到了这个问题的答案) 我不能在另一个代码段文件中包含一个代码段文件,但对于某个文件类型,我可以包含多个代
因此,我的问题是,是否可以将其他文件中的代码片段包含到您的代码片段文件中?否。您需要将这些代码片段拉/粘贴到您的arduino.snippets文件中。(在搜索snipmate插件的文档后,我找到了这个问题的答案) 我不能在另一个代码段文件中包含一个代码段文件,但对于某个文件类型,我可以包含多个代码段。我已经在我的.vimrc中声明了以下内容,并且它现在可以工作了
" Add c snippets to Arduino
let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['arduino'] = 'arduino,c'
我正在使用我创建的这个工具。@Sudar:您的方法很好,但若您稍后有另一个配置或lang,那个么就并没有必要了,您的vimrc将会膨胀
只需在snipmate中创建
arduino.snippets
,然后:设置ft=c.arduino
。Snipmate根据其文件类型识别代码片段,您特别询问了Snipmate,因此这可能有点不恰当,但无论如何:还有一个名为UltiSnips的插件,它与Snipmate非常相似(具有一些附加功能)。在UltiSnips的代码段文件中,您可以使用extends语句,该语句完全满足您的要求。将以下内容添加到$VIMRUNTIME/after/plugin/snipMate.vim
文件中:
call ExtractSnipsFile(g:snippets_dir.'arduino.snippets', 'c')
这将解析并初始化.c
文件类型的arduino.snippets
文件
基本上,它只是从该文件中加载代码片段,并将它们添加到指定的文件类型,在您的例子中是c
文件
有关使用ExtractSnipsFile
的帮助,请参阅:help ExtractSnipsFile
编辑2018.03.14
可以使用UltiSnipsAddFiletypes
为同一文件类型加载多个代码段文件。
例如,如果您想在编辑.arduino
文件时加载.c
代码段,只需将以下行添加到ftplugins/arduino.vim
:
UltiSnipsAddFiletypes arduino.c
我没有使用过UtiSnips,但我对snipmate非常满意,因此可以继续使用。我在文档中也看到了这一点。但问题是,我已经有了两个用于“arduino”文件类型的其他autocmd。将其更改为“c.arduino”也会影响他们。此文件是vim snipmate的一部分,还是我必须创建一个单独的文件,仅此行?另外,如果你能解释一下这是如何工作的,那也会很有帮助。我正在使用的是一个叉子ExtractSnipsFile
似乎仅在snipmate.vim中可用,而在vim snipmateDisregard中不可用。那么,您的答案可能是最好的选择,并且在不编辑任何插件文件的情况下配置插件。