【问题标题】:Restore pathogen git repos恢复病原体 git repos
【发布时间】:2015-02-28 19:04:20
【问题描述】:

我将我的 _vimrc 文件备份到谷歌驱动器,这样当我进行新的gvim 安装时,我可以在新计算机上使用它。我对我所有的 vim 插件都使用pathogen,并且正在压缩 /vimfiles/bundle 目录以上传到谷歌驱动器,但是当所有插件都在 github 上时,这似乎很愚蠢。我想有一种方法来恢复所有病原体 git 插件存储库。

有什么方法可以拥有某种“包文件”,这样我就可以对 vimfiles/bundle 目录中的所有 repos 执行 git restore 操作?还是有另一种保存 vim 环境的好习惯?我正在使用 Windows 8.1 仅供参考。

【问题讨论】:

  • Imo,最好为你的 vim 文件创建一个 git 存储库。然后,您可以将插件的 git 存储库作为子模块添加到 bundle 目录中。
  • 如果您只想移动 vimrc 文件,请考虑使用不同的插件管理器,例如 vundle、neobundle 或 plug,它们会自动为您从 github 获取它们。

标签: git vim github


【解决方案1】:

名为Vundle 的替代插件管理器实现了您正在寻找的东西。使用此插件管理器,插件会在.vimrc 中列出,因此在将此文件复制到新位置后,只需克隆Vundle 本身,然后可以使用单个命令安装其他所有内容。 请尝试一下,看看它是否满足您的需求。

另一种选择是使用您的 $HOME/.vim 文件夹的内容创建一个 git 存储库,并使用 git submodules 来跟踪您的 vim 插件。例如,在 Linux 中,您可以执行以下操作:

mkdir ~/.vim
cd ~/.vim
git init
git submodule add https://github.com/tpope/vim-pathogen.git bundle/vim-pathogen.git
git commit -m "Add vim-pathogen plugin"

从现在开始,只要您希望将插件放在新位置,您只需使用选项--recursive 克隆此 git 存储库,所有插件都会自动添加。 在谷歌搜索时,我发现Vim Cast #27 显示了我试图描述的示例实现。

【讨论】:

  • 我用过 Vundle,它真的很好,直到我发现了病原体。我真的很喜欢能够克隆一个 repo 并拥有插件。
  • 但是现在您正在寻找一个辅助“包文件”来存储 Vundle 允许您直接存储在 vimrc 中的信息?这似乎不太连贯;)不过,我已经更新了我的答案,将 git 子模块作为 Vundle 的替代品。
  • 在这种情况下git submodules 有什么用?我没有注意到任何错误,只是将插件的 get repos 存储在 .vim git repo 下。以后会不会出现这样的错误?
  • 当你创建并 cd 到你的 "/.vim" 目录时,你的意思是你在实际的 /.vim (/vimfiles) 目录中,它包含所有的 /colors、/autoload、/捆绑(用于病原体插件)等目录?或者您是否在仅包含插件的病原体“/bundle”目录中?我只是认为如果不在直接包含子模块的目录中,git 可能会感到困惑。
【解决方案2】:

我使用以下方式来备份和恢复我的vim环境:

  1. 使用 Pathogen 作为插件管理器。
  2. .vimrc复制到.vim文件夹。
  3. .vim 中创建git repo 并将其推送到远程存储,例如githubbitbucket
  4. 在新环境中,git clone <my remote repo> 在主文件夹中并创建指向.vimrc 的链接(不过,我仅在 Linux 中测试了使用链接的方式,我不确定它是否适用于 Windows)或者只是复制它到您的主文件夹。 就是这样。

我认为我的 vim 配置是普通的 git repo,所以在添加新插件或更改 .vimrc 后,我使用 git add .git commitgit push

.vim/bundle 中的git clone <repo with plugin> 的方式工作得很好,主 repo 应该没有问题。

【讨论】:

  • 那么您是否将其他存储库的整个文件放入您的存储库中?或者你的回购可以引导其他回购并下载它们吗?那会很酷
  • 不,插件的存储库只是存储在.vim/bundle 文件夹中,它们是在git clone 之后下载的。正如@Vitor 所说,您可以使用Vundle,它会下载您的插件的最新版本。
猜你喜欢
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-21
  • 2012-02-02
相关资源
最近更新 更多