我在不同的機器上使用vim,並希望保持我的配置在它們之間同步,所以我嘗試了衆所周知的方法,使用pathogen來安裝不同的vim插件,將它們保持爲所描述的git子模塊例如here。使用病原和git子模塊自定義vim包
現在我的.vim
文件夾是一個git repo,它包含作爲子模塊的每個文件夾中的.vim/bundle
。我把這個主要的回購上傳到bitbucket並從我的其他機器克隆它,並且在git submodule init
和git submodule update
之後,我得到了與想要的相同的配置。
現在問題出現時,我需要在這些插件中進行一些定製。例如,一些子模塊就是vim colorschemes。假設我想改變,說評論的顏色。這將是正確的方式來做到這一點?
一些想法來共同我的腦海裏:
- 如果我直接修改
.vim/bundle/vim-github-colorscheme/colors
(例如),那麼據我所知,我應該推動這些變化的主要vim-github-colorscheme
回購,這是我不能,將是可笑的呢。我的定製本質上是私有的。但是,如果我不同步子模塊回購,這些更改將不會從我的其他機器可見。 - 如果我在
.vim/colors
中保留我自己的色彩定製,那麼這些更改將成爲主要回購的一部分,並且它們將很容易在機器之間共享,但這打破了「捆綁」病原體的理念。此外,我不清楚如何完成這種方式的其他類型的自定義(例如,修改snipMate的一些片段,甚至修改插件的代碼) - 我應該做一個插件的私人分支,上傳它到bitbucket,並將其用作子模塊而不是原來的模塊?這樣,至少我可以在1中正確地做到這一點,但它看起來不是一個好的選擇。特別是因爲我不知道我是否需要定製插件,所以這會迫使我爲每個安裝的新vim插件做一個分支「以防萬一」。
- 我可以將捆綁的代碼保存在一個單獨的git倉庫中,即根本不使用子模塊。這將使我可以自由修改它們,將修改與我的bitbucket repo同步,並將它們部署到我的所有機器中,只需一個
git pull
即可。但是,這樣,當插件的原始源代碼發生更改時,很難將其與我自己的修改合併。
我用完了所有的想法,上述所有內容因爲某種原因似乎都是錯誤的。使用git和病原體的人如何管理這種情況?
好吧,但我想還需要一些更多的配置才能合併原始回購中的更改。如果我使用3,我應該添加原始回購作爲上游,除了我自己的副本,不是嗎?如果我使用4 ..怎麼可能做到? – JLDiaz
我的意見*是你不應該關心原始存儲庫。如果你的變化是「私人」的,就像你所說的那樣,根據定義,它們並不意味着被推向上游。如果你覺得用github很容易做出一個拉動請求,如果我在你的鞋子裏,我不會想太多。無論你對自己的逃亡分子做什麼,無論如何你都沒有對原始回購的承諾權利,所以......爲什麼要麻煩。成爲一名優秀的github公民是一回事,而另一件事情就是在這樣的頭髮分裂上浪費你的時間。 – romainl
對不起,我感到困惑。我並不是故意推動我的更改,而是在原始倉庫中提取更改並將其與自己的定製合併。我認爲這是有道理的,以便始終保持最新狀態並保留我的定製。 – JLDiaz