如何在多个客户端共享一个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
)和colors
, plugin
等目录。
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中提到,我从博客引用。
- 保持你的dotfiles在git中
- 使用此命令将插件安装为子模块
混帐子模块添加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文档上保留了我的点文件的副本。