2011-02-06 20 views
0

我使用病毒和vim作为子模块安装的所有插件。这很好,但我有一个插件的问题 - xptemplate。它要求将个人代码片段放入特定目录“bundle/xptemplate/personal /”。我为ruby创建了个人代码片段,并将其放入“bundle/xptemplate/personal/ruby​​/ruby​​.xpt.vim”中,它可以工作......但是执行“git submodule update”会恢复我的工作。更新插件是我不时想做的事情。另一个缺点是我不能在另一台机器上轻松克隆我的vim配置 - 我不得不手动复制这个文件。vim&git submodules:如何将我自己的文件放入子模块?

有没有办法做到这一点?我曾想过在“bundle/xptemplate”中添加诸如“personal/*”之类的.gitignore文件。我没有测试过它,但即使它工作,它也只能解决通过子模块更新恢复我的工作的问题,并且不允许我将我的代码片段推送到github。

我会很感激任何帮助。

回答

3

这完全独立于vim和病原体,只是关于子模块如何使用的一般答案。

如果你想修改项目的一个子模块,你必须做到以下几点:

  • 结束了一个新的(通过提交给它的例子)辅助模块提交被查出来

  • 更新的子模块添加到上层项目,并提交该

所以,如果你想改变你的插件子模块之一,编辑的时候,你做anyt然后前像子模块更新一样,将它们提交给子模块,回到超级项目,将更改添加到子模块,然后在那里提交。

您对“将您的更改推送给github”发表了评论。如果您想这样做,则需要确保也推送子模块中的更改;超级项目必须能够获取所需的子模块提交以检出!当然,这意味着如果你使用别人编写的插件而不能推回给他们,你会想要将你的版本(如果你愿意的话)扔到github上,并将它作为权威来源为你的超级项目。

如果您需要更多帮助,以适应您的具体设置,请留下评论,我会与您合作。

+0

好的,这是非常有用的。现在一切似乎都很清楚。这只是一个小片段,所以分叉似乎是一种太多的工作。 ;) – jmatraszek 2011-02-06 18:05:51

1

xptemplate搜索所有'runtimepath'(请参阅:help runtimepath)以查找类似“* .xpt.vim”的代码片段文件。

您不需要将自己的片段放在子模块文件夹中。 但只是添加包含您的代码段为“runtimepath”里(在.vimrc)的文件夹:

集runtimepath + = /富/酒吧

和路径的片段应该是:“/富/酒吧/红宝石/ruby.xpt.vim”。

+0

非常感谢你! :) – jmatraszek 2011-09-29 18:05:04

相关问题