gpt4 book ai didi

vim - 使用病原体和 git 子模块自定义 vim 包

转载 作者:行者123 更新时间:2023-12-04 19:09:00 26 4
gpt4 key购买 nike

我在不同的机器上使用 vim 并希望在它们之间保持我的配置同步,所以我尝试了众所周知的使用方法 pathogen安装不同的 vim 插件,将它们保存为 git 子模块,例如 here .

现在我的.vim folder 是一个 git repo,它包含 .vim/bundle 中的每个文件夹作为子模块.我将那个主仓库上传到 bitbucket 并从我的其他机器上克隆了它,经过一些 git submodule initgit submodule update我得到了所有想要的相同配置。

现在,当我需要对其中一些插件进行一些自定义时,问题就来了。例如,一些子模块只是 vim 颜色方案。假设我想改变,说出评论的颜色。这样做的正确方法是什么?

我想到了一些想法:

  • 如果我直接修改.vim/bundle/vim-github-colorscheme/colors (例如),然后 AFAIK,我应该将这些更改推送到主要 vim-github-colorscheme repo ,我不能,而且无论如何都会很荒谬。我的定制本质上是私有(private)的。但是,如果我不与子模块 repo 同步,这些更改将不会从我的其他机器上看到。
  • 如果我在 .vim/colors 中保留我自己的配色方案定制,那么这些更改将成为主 repo 的一部分,它们将很容易在机器之间共享,但这打破了病原体的“捆绑”理念。此外,我不清楚如何以这种方式完成其他类型的自定义(例如,修改 snipMate 的一些片段,甚至修改插件的代码)
  • 我是否应该制作插件的私有(private)分支,将其上传到 bitbucket,并将其用作子模块而不是原始模块?这样至少我可以正确地执行 1. 中的方法,但它看起来不是一个好的选择。特别是因为我事先不知道是否需要自定义插件,所以这将迫使我为我安装的每个新 vim 插件创建一个分支,以防万一。
  • 我可以将捆绑包的代码保存在一个 git repo 下,即根本不使用子模块。这将使我可以自由地修改它们,将修改与我的 bitbucket 存储库同步,并使用单个 git pull 将它们部署到我的所有机器中。 .但是这样一来,当插件的原始源代码发生更改时,很难将其与我自己的修改合并。

  • 我的想法用完了,出于某种原因,以上所有这些对我来说似乎都是错误的。使用 git 和病原体的人如何管理这种情况?

    最佳答案

    3 是您的用例的最佳解决方案。您不需要系统地创建所有这些 fork:仅当您确实需要更改某些内容并用您的 fork 替换原始子模块时才 fork 插件。

    也就是说,我混合使用了 3 和 4:我的插件不是子模块,我已经将其中的两个 fork 用于定制目的。

    关于vim - 使用病原体和 git 子模块自定义 vim 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17566876/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com