将你的.vim〜/ .vimrc添加到github(又名点文件)

我看到有几个人用他们的点文件git回购。 我想知道他们是否只是

cd ~/ git init git add .vimrc // etc 

? 那么这就是他们如何保持最新? 或者他们可能会复制并同步它们?

你们推荐或使用什么策略? 大多不想承诺和推动我的整个〜/

谢谢

制作你家的git仓库可能是一个坏主意(你会花费更多的时间来创build.gitignore文件,而不是做你真正想做的事情)。

我build议为你的点文件(例如~/git/dotfiles )使用一个单独的git目录,并把它们作为你家的符号链接(例如ln -s ~/git/dotfiles/.vim ~/.vim等)。

如果您不想在每次想要在某处安装dotfiles时手动创build符号链接,则可以使用如下所示的脚本: https : //github.com/sitaktif/dotfiles/blob/master/bin/create-符号链接 (它使用https://github.com/sitaktif/dotfiles/blob/master/CONFIG.example作为configuration)。;

我在~/.vim/vimrc目录下有版本控制下的~/.vim目录和我的“真正的” vimrc (全部是我的设置)

 ~/ ---- .vim/ ---- ---- (plugins and stuff) ---- ---- vimrc ---- .vimrc 

我的常规~/.vimrc只有一行:

 runtime vimrc 

不需要创build符号链接或其他。

这就是我将我的configuration推到一台已经安装了Git的新机器上:

 $ cd $ git clone git@github.com:romainl/dotvim.git .vim $ echo "runtime vimrc" > .vimrc 

接下来是整个创作过程。 我假设你已经在Github上创build了一个名为“vimconfig”的账户和一个repo,并且你已经有了一个精心制作的~/.vimrc和一个组织良好的~/.vim/

 $ cd $ mv .vimrc .vim/vimrc $ echo "runtime vimrc" > .vimrc $ cd .vim $ git init $ echo "This is my Vim config." > README $ git add * $ git commit -m "My Vim config is versioned." $ git remote add origin https://github.com/username/vimconfig.git $ git push origin master 

在这一点上,你应该在Github 本地存储库上拥有相同的内容。

您通常pipe理该存储库,并在您准备就绪时推送您的提交。 简单。

请注意,整个Github的事情是唯一有用的,如果你需要/想要在多台机器上同步你的configuration,或者某种程度上需要/想要与他人共享。 如果你不这样做,那么使用GitHub根本就没有真正的意义。

(编辑)

Vim 7.4引入了一个新的,非常有用的scheme:它寻找通常的~/.vimrc ,也用于~/.vim/vimrc这样对你来说就更less了:

 $ cd .vim $ git init $ echo "This is my Vim config." > README $ git add * $ git commit -m "My Vim config is versioned." $ git remote add origin https://github.com/username/vimconfig.git $ git push origin master 

当然,如果你必须处理混合的Vim版本,我最初提出的策略仍然是有效的:Vim知道该做什么,并且不会无休止地循环。

我已经有一个“捆绑”文件夹,我把我所有的插件通过病原体加载。 所以我做了我的git文件夹(与插件作为子模块),并把我的vimrc那里的文件夹。

在官方的.vimrc我写道:

 let $MYVIMRC="<path_to_vimrc_in_bundle_folder>" source $MYVIMRC ... call pathogen#infect() 

而我没有版本呢!

这使我可以在家中的Linux机器和工作中的Windows机器之间共享我的configuration。 我也可以把官方.vimrcconfiguration特定的机器,或者我不想公开的(如包含login名和密码的dbextconfiguration文件…)

这里是一个平台不可知和shell不可知的解决scheme,除了你有可用的bourne兼容shell(bash,zsh,ksh等)之外没有任何依赖。 它适用于Mac,Linux和Windows:

dotsys

它会自动同步你的dotfiles与github和多台机器的变化,以及许多其他function。

在黑客新闻中查看steakcobra的解决scheme:

 git init --bare $HOME/.myconf alias config='/usr/bin/git --git-dir=$HOME/.myconf/ --work-tree=$HOME' config config status.showUntrackedFiles no 

其中~/.myconf是裸露的git存储库的位置。 那么$HOME任何文件都可以像这样版本化:

 config status config add .vimrc config commit -m "Add vimrc" config add .config/redshift.conf config commit -m "Add redshift config" config push 

如果你需要进一步的解释,尼古拉·保卢奇提供了一个很好的解释 。