神奇的 pathogen
pathogen + git
pathogen + git 真是太强大了.
以前安装vim插件的话, 里面的内容要分装到几个目录中, 例如doc, plugin等. 升级的时候尤其麻烦. 而pathogen是vim的一个插件, 装了它以后, 其他插件就可以放在.vim/bundle里面单独的一个目录中即可.
现在vim 插件几乎都被搬到github上. 通过git可以很容易就下载/更新vim插件, 因为在pathogen的帮助下, 每个插件都是一个单独的目录了, 互相之间不影响.
vim scripts提到一些管理的工具.
git module
现在.vim/bundle里面有若干个目录, 每个目录都是一个git管理的仓库, 每次更新都要手工更新, 当然写脚本也可以, 只是感觉不够优美.
今天看到一篇文章, 里面提到"git module", 就是一个git仓库中还可以嵌入其他独立的仓库. 这个用来管理整个vim配置目录, 甚是完美. 例如我把.vim作为一个仓库, 而从github上clone下来各种插件到.vim/bundle中. 我从其他机器上克隆的时候, 就可以自动把这些插件也下载下来.
假设我有项目super, 其中有4个submodules, a, b, c, d.
初始化modules
# add remote repo
$ git submodule add path_to_repo local_subdirectory/name
# add submodule repo urls to config
$ git submodule init
# clone and checkout
$ git submodule update
更新
(在super的目录中)
$ git pull
$ git submodule update
$ git submodule foreach git pull # 如果上面一行不行
在其他地方clone
$ git clone path_to_remote_repo
$ git submodule init
$ git submodule update # 以后只要这个即可
移动模块
修改模块的名字, 见stackoverflow:
$ vim .gitmodules # 修改对应路径
$ mv oldpath newpath
$ git rm oldpath
$ git add newpath
$ git submodule sync
注意
- 子模块可以看作只读的. 要修改也可以, 签出"master"branch即可.
- 删除module有点麻烦, 目前不能自动删除, 步骤和修改模块名字差不多.