私はさまざまなマシンでvimを使用しており、構成をそれらの間で同期させたいので、病原体を使用してさまざまなvimプラグインをインストールし、たとえばここで説明されているようにgitサブモジュールとして保持するというよく知られたアプローチを試しました。
現在、私の.vim
フォルダーは git リポジトリであり、サブモジュールとして各フォルダーが含まれています.vim/bundle
。そのメイン リポジトリを bitbucket にアップロードし、他のマシンからクローンを作成しました。その後、必要に応じてすべてのリポジトリで同じ構成を取得しましたgit submodule init
。git submodule update
これらのプラグインの一部をカスタマイズする必要があるときに問題が発生します。たとえば、一部のサブモジュールは単なる vim カラースキームです。コメントの色を変更したいとします。そうするための適切な方法はどれですか?
いくつかのアイデアが頭に浮かびました:
- 私が直接変更した場合
.vim/bundle/vim-github-colorscheme/colors
(たとえば)、私の知る限り、それらの変更をメインvim-github-colorscheme
リポジトリにプッシュする必要がありますが、それはできず、とにかくばかげています。私のカスタマイズは本質的に非公開です。しかし、サブモジュール リポジトリと同期しないと、それらの変更は他のマシンからは見えません。 - 独自のカラースキームのカスタマイズを に保持する
.vim/colors
と、これらの変更はメイン リポジトリの一部になり、マシン間で簡単に共有できますが、これは病原体の「バンドル」哲学を破ります。さらに、この方法で他の種類のカスタマイズを実行する方法が明確ではありません (たとえば、snipMate の一部のスニペットを変更したり、プラグインのコードを変更したりするなど)。 - プラグインのプライベート フォークを作成し、それを bitbucket にアップロードして、元のモジュールの代わりにサブモジュールとして使用する必要がありますか? このようにして、少なくとも1.のアプローチを適切に行うことができましたが、良いオプションとは思えません。特に、プラグインをカスタマイズする必要があるかどうかが事前にわからないため、「念のため」インストールする新しい vim プラグインごとにフォークを作成する必要があります。
- バンドルのコードを単一の git リポジトリの下に保持できます。つまり、サブモジュールをまったく使用しません。これにより、それらを自由に変更し、変更を bitbucket リポジトリと同期し、単一の .xml ですべてのマシンにデプロイできます
git pull
。ただし、この方法では、プラグインの元のソースに変更が加えられると、それを自分の変更とマージするのが難しくなります。
私はアイデアを使い果たしました.上記のすべては、何らかの理由で私には間違っているようです. git と病原体を使用する人々は、このシナリオをどのように管理していますか?