vim& git子模块:如何将我自己的文件放入子模块?

时间:2011-02-06 15:59:10

标签: git vim git-submodules

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

有没有办法做得对?我想在“bundle / xptemplate”中添加类似“个人/ *”的东西给.gitignore文件。我还没有对它进行过测试,但即使它有效,它也只能通过子模块更新解决我的工作问题,并且不允许我将我的片段推送到github。

我将不胜感激。

2 个答案:

答案 0 :(得分:3)

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

如果要修改项目的子模块,则必须执行以下操作:

  • 以子模块中签出的新提交结束(例如通过提交)

  • 将更新后的子模块添加到超级项目中,然后提交

因此,如果您想更改其中一个插件子模块,请编辑,然后在执行子模块更新之前,将它们提交到子模块,返回到超级项目,将更改添加到子模块,以及也在那里承诺。

您对“将[您的更改]推送到github”发表了评论。如果你想这样做,你需要确保推动子模块中的更改;超级项目必须能够获取所需的子模块提交才能检出!当然,这意味着如果您使用其他人编写的插件并且无法回复它们,那么您将需要在github上抛出您的版本(如果您愿意的话),并将其作为权威来源使用为您的超级项目。

如果您需要更多帮助来调整所有这些以适合您的特定设置,请给我留言并与我合作。

答案 1 :(得分:1)

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

Thas方式您不需要将自己的片段放在子模块文件夹中。 但只需将包含您的代码段的文件夹添加到'runtimepath'(在.vimrc中):

设置runtimepath + = / foo / bar

你的片段的路径应该是:“/ foo / bar /ruby / ruby​​.xpt.vim”。