如何在多个客户端共享一个vimrc文件?

有时候我不是一个有序的人,经常发现自己已经失去了我原来完全调整好的vimrc文件,不得不重新开始。 或者在不同的客户端上有不同版本的vimrc文件。 由于这个乱七八糟的事情对我来说太不可思议了,我想知道是否有pipe理我的vimrc文件的好方法。

我的第一个举措是把我的_vimrc颠覆(谷歌代码),我打算维护它。 其他想法是受欢迎的。

更新

我解决了以下解决scheme:

  • .vimrc.gvimrc上传到名为Vim的目录中的联机代码存储库。 使用文件名_vimrc_gvimrc以便它们不被隐藏,并与Windows兼容。

  • 签出目标系统上的存储库

  • 在Mac OSX / Linux上创build符号链接:

    ~ $ ln -s my_repository/Vim/_vimrc $HOME/.vimrc

    ~ $ ln -s my_repository/Vim/_gvimrc $HOME/.gvimrc

  • 在Windows上,我将Vim文件夹放在Program Files目录下的Vim文件夹中。 SVN抱怨那里已经存在的文件,但你可以将它们添加到忽略列表。

我使用Dropbox 。 我在我的保存箱中创build了一个vim文件夹,里面包含我的.vimrc (实际上: vimrc.vim )和colorsplugin等目录。

Dropbox将所有这些文件推送到我的所有计算机(家庭,工作,笔记本电脑,Bootcamp),所以每当我想更改我的vimrc ,我都可以这样做,而且我不必担心将其复制到正确的目录或检查从SVN或任何东西的文件。 一切都自动发生!

我的实际.vimrc只包含加载我的Dropbox中的东西的必要条件。 在OSX和Linux上,它看起来像这样:

 set runtimepath^=~/Dropbox/vim source ~/Dropbox/vim/vimrc.vim 

在Windows上,像这样:

 set runtimepath^=$HOME/My\ Documents/My\ Dropbox/vim source $HOME\My Documents\My Dropbox\vim\vimrc.vim 

而就是这样!

(实际上,我也把vimrc放在了我的Dropbox中,所以每当我build立一台新电脑或者重新安装一个旧电脑的时候,我都不需要记住它们。)

Dropbox的免费版本将为您提供30天的修订历史logging,付费的版本将为您提供完整的修订历史logging。 请注意,如果您使用的是Linux,那么最简单的方法就是使用GNOME,Dropbox有一个很好的客户端。

条件设置

如果你有轻微的configuration更改,你想在不同的机器上使用这是一个方便的解决scheme:

在每个.vimrc文件中创build一个小函数来返回你所在系统的types:

 fun! MySys() return 'linux' endfun 

那么在你的全局vimrc.vim文件中:

 if MySys() == "linux" set backupdir=./.backup,/tmp set directory=./.backup,/tmp elseif MySys() == "windows" set backupdir=$HOME/AppData/Local/backup,$HOME/AppData/Local/tmp set directory=$HOME/AppData/Local/backup,$HOME/AppData/Local/tmp endif 

Dropbox的替代品

有许多云存储和同步服务,Dropbox只是一个例子。 http://sparkleshare.org/和http://one.ubuntu.com等OpenSource服务存在,但是我们鼓励您在互联网上search最适合您需求的解决scheme。;

我把这些文件放在一个源代码pipe理系统中,具体颠覆,但是哪个并不重要。 这给了我所有这些configuration文件的历史,这只是一个检查configuration文件,当我想要一个新的/其他机器或useraccount相同的问题。

使用git。 我有我的.vim和.vimrc文件在一个git仓库,我分支他们为不同的系统。 所以我有分支为拉比,一个分支为基于Debian的,RH基于一个等。

我把所有的服务器上的回购火柴,我认为合适的变化。 那么,当我输了一个,其他任何人都会服务。 .vim / .vimrc是应该在DVCS中的文件的一个很好的例子。

像其他人一样说:使用版本控制系统。

这是一个这样的项目,容易分叉和扩展: http : //github.com/ryanb/dotfiles

它不仅处理vim.rc,而且还有各种configuration,并附带一个设置脚本。

还有一种使用版本控制安装插件的非常好的方法,因为大部分VIM插件都可以在GITHUB上使用,所以也有帮助。 请参阅本文,告诉您如何使用GIT保持您的.VIM文件同步,并在PATHOGEN插件的帮助下将插件作为子模块加载。

使用GIT来同步VI插件

简而言之,在vimcast中提到,我从博客引用。

  1. 保持你的dotfiles在git中
  2. 使用此命令将插件安装为子模块
    混帐子模块添加http://github.com/tpope/vim-fugitive.git捆绑/逃亡;

最适合我的是将以下内容放在我的.vimrc文件中:

 set nocompatible let $localcloudpath = $MYVIMRC . '_cloud' let $cloudurl = '!curl https://bitbucket.org/<USERNAME>/vimrc/raw/master/global -o '. $localcloudpath silent execute $cloudurl source $localcloudpath 

这样,每次运行vim,它都会从我的BitBucket存储库下载并使用最新的 .vimrc文件。 如果连接到互联网不存在,它将使用最后下载的.vimrc

唯一的要求 (除了一个活跃的互联网连接)是你需要安装CURL 。


如果你不想每次都下载最新的.vimrc ,那么只要注释一下curl就行:

 " let $cloudurl = '!curl https://bitbucket.org/<USERNAME>/vimrc/raw/master/global -o '. $localcloudpath 

BitBucket也是个人偏好,因为我可以在线轻松地编辑文件,而不必提交任何内容,但是您可以使用可公开访问的URL(Dropbox,Google Drive,Git等)将.vimrc文件托pipe到任何地方。


UPDATE(16/10/2017)

使用以下更新的curl命令将始终从bitbucket获得新鲜的.vimrc 。 如果您离线或连接速度较慢,它也会超时并使用上次下载的.vimrc_cloud

 let $cloudurl = '!curl -H "Cache-Control: no-cache" --max-time 10 https://bitbucket.org/<USERNAME>/vimrc/raw/master/global -o '. $localcloudpath 

如果你使用vundle你可以这样做。 Git保持vimrc和所有其他设置同步和vundle保持跟踪你的插件/脚本。

与vundle和git同步vim

我在Google文档上保留了我的点文件的副本。