使用snipmate + vim时,是否可以有多个片段文件 加载给定的语言/文件类型?
例:
snipmate附带javascript.snippets
我还加载了mootools片段并将其添加到我的vimrc中:
autocmd FileType javascript set ft=javascript.mootools
现在我可以使用
我想添加第3组代码段javascript.myCustomSnippets
, 加载文件类型javascript
。
当我尝试使用类似的内容添加自定义代码段时
autocmd FileType javascript set ft=javascript.myCustomSnippets
它会覆盖/禁用mootools片段,但默认的javascript片段会继续有效。
我如何做到这一点,还是可能?
ps:我知道我可以将我的片段添加到默认的javascript片段文件中,但由于我在我的.vim/bundle/
文件夹中同步了snipmate github repo,我想将个人资料与现场回购。
我的解决方案
最终让我的文件并排工作的特定解决方案是构建我的文件(顺便说一下,我使用pathogen自动加载bundle
目录)
~/.vim/bundles/
snipmate.vim/snippets/javascript.snippet
vim-snippets.mootools/snippets/mootools.snippet
vim-snippets.myCustomSnippets/snippets/javascript.snippets
通过命名我的文件“javascript.snippets”,它会自动加载默认值。
答案 0 :(得分:17)
Ruy Diaz关于个人的事情是正确的,你可以将你自己的所有片段保存在“〜/ .vim / snippets”中,你就不会对github repo有任何问题。如果这不适合您,g:snippets_dir
变量可能具有错误的值 - 只需在您的vimfiles中明确设置它。
至于组合多个片段,您可以使用ExtractSnipsFile
功能。这应该做你想要的,而不用乱码文件类型语法。
假设您有以下三个片段文件,都在您的代码段目录中:
在/ plugin / snippets.vim之后创建一个文件并将以下内容放入其中:
call ExtractSnipsFile(g:snippets_dir.'javascript.snippets', 'javascript')
call ExtractSnipsFile(g:snippets_dir.'mootools.snippets', 'javascript')
call ExtractSnipsFile(g:snippets_dir.'myCustomSnippets.snippets', 'javascript')
这会将所有这些片段与javascript
文件类型相关联,不需要显式的自动命令。有关详细信息,请尝试:help ExtractSnipsFile
。
答案 1 :(得分:4)
在.vim目录中创建一个代码段文件夹,然后将代码段放在那里。在那里创建一个名为javascript.snippets的文件,您应该同时拥有snipmate片段和自定义片段。
答案 2 :(得分:2)
仅供进一步参考,:h snipMate说明:extends: 扩展了给定文件类型的片段。
extends c, cpp, objc
这将包括给定文件类型的所有片段。 并将您自己的代码段文件放在〜/ .vim / snippets / objc.snippet
中答案 3 :(得分:1)
当然可以。首先使用github.com/MarcWeber/vim-addon-manager,这样您就不会错过上游更改。 M. Sander的肛门分叉因为他从未回复有关合并请求的电子邮件。这就是为什么我和加尔巴斯改进了它。新版本可以在github.com/garbas/vim-snipmate找到。
您可以使用全局scope_aliases字典将文件类型与代码段文件相关联。这样,您可以根据个人喜好轻松地为html文件添加js代码段支持。还有一些变化,但我厌倦了重复它们。
答案 4 :(得分:0)
由于您使用的是病原体而不是您需要做的就是将自定义Snippets文件夹添加到bundles目录中。例如:
~/.vim/bundles/mySnippets/snippets/php.snippets