如何在多个客户端之间共享一个vimrc文件?
我有时不是一个非常有秩序的人,我经常发现自己的情况下,失去了我的旧的完全调整vimrc文件,不得不重新开始。或者在不同的客户端上有不同版本的vimrc文件。由于我无法控制这种混乱局面,我想知道是否有一种管理我的vimrc文件的好方法 我的第一个计划是将我的vimrc放在subversion(谷歌代码)上,我打算维护它。欢迎提出其他想法 更新 我采用了以下解决方案:如何在多个客户端之间共享一个vimrc文件?,vim,Vim,我有时不是一个非常有秩序的人,我经常发现自己的情况下,失去了我的旧的完全调整vimrc文件,不得不重新开始。或者在不同的客户端上有不同版本的vimrc文件。由于我无法控制这种混乱局面,我想知道是否有一种管理我的vimrc文件的好方法 我的第一个计划是将我的vimrc放在subversion(谷歌代码)上,我打算维护它。欢迎提出其他想法 更新 我采用了以下解决方案: 将.vimrc和.gvimrc上传到名为Vim的目录中的在线代码存储库中。使用文件名\u vimrc和\u gvimrc,这样它们
- 将
和.vimrc
上传到名为.gvimrc
的目录中的在线代码存储库中。使用文件名Vim
和\u vimrc
,这样它们就不会被隐藏,并且与Windows兼容\u gvimrc
- 签出目标系统上的存储库
- 在Mac OSX/Linux上创建符号链接:
~$ln-s my_repository/Vim/\u vimrc$HOME/.vimrc
~$ln-s我的存储库/Vim/\u gvimrc$HOME/.gvimrc
- 在Windows上,我在Program Files目录中的Vim文件夹上签出Vim文件夹。SVN抱怨那里已经存在文件,但您可以将这些文件添加到忽略列表中
- 使用git。我将.vim和.vimrc文件放在git repo中,并将它们分支到不同的系统。所以我有一个用于lappy的分支,一个用于debian的分支,一个用于RH的分支,等等
我在我所有的服务器上启动repo,并在我认为合适的时候合并更改。然后,当我失去一个时,其他人中的任何一个都会为我服务。vim/.vimrc是应该放在DVCS中的文件的一个很好的例子。我把这些文件放在一个源代码控制系统中,特别是subversion,但不管是哪个。 这给了我所有这些配置文件的历史记录,当我想在新的/其他机器或用户帐户上使用相同的配置文件时,只需签出配置文件。我在谷歌文档上保留了我的点文件副本。我使用。我在dropbox中创建了一个文件夹
vim
,其中包含我的.vimrc
(实际上是:vimrc.vim
)和colors
,插件
等目录
Dropbox将所有这些文件推送到我的所有计算机(家庭、工作、笔记本电脑、训练营),因此每次我想更改我的vimrc
,我都可以这样做,我不必担心将其复制到正确的目录或从SVN签出文件或其他任何事情。一切都是自动发生的
我的实际.vimrc
仅包含加载我的Dropbox中的内容所需的内容。在OSX和Linux上,它如下所示:
set runtimepath^=~/Dropbox/vim
source ~/Dropbox/vim/vimrc.vim
set runtimepath^=$HOME/My\ Documents/My\ Dropbox/vim
source $HOME\My Documents\My Dropbox\vim\vimrc.vim
在Windows上,如下所示:
set runtimepath^=~/Dropbox/vim
source ~/Dropbox/vim/vimrc.vim
set runtimepath^=$HOME/My\ Documents/My\ Dropbox/vim
source $HOME\My Documents\My Dropbox\vim\vimrc.vim
就这样
(事实上,我把上面的vimrc
也放在了我的Dropbox中,所以每当我安装一台新电脑或重新安装一台旧电脑时,我不必记住它们。)
免费版本的Dropbox将为您提供30天的修订历史记录,付费版本将为您提供完整的修订历史记录。请注意,如果您在Linux上,那么使用GNOME是最简单的,Dropbox有一个很好的客户端
条件设置
如果您希望在不同的机器上使用轻微的配置更改,这是一个方便的解决方案:
在每个.vimrc文件中创建一个小函数,以返回您所在系统的类型:
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只是一个例子。开放源代码服务,如和,但鼓励您在internet上搜索最适合您需要的解决方案。正如其他人所说:使用版本控制系统 以下是这样一个项目,易于分叉和扩展: 它不仅处理vim.rc,还处理所有类型的配置,并附带一个安装脚本。
还有一种非常好的方法可以使用版本控制安装插件,因为大多数VIM插件都可以在GITHUB上使用,这也有帮助。 请参阅本文,它告诉您如何使用GIT保持.VIM文件的同步,并在插件的帮助下将插件作为子模块加载 简而言之,vimcast中提到的内容和我在博客中引用的内容
git子模块添加捆绑包/逃犯
如果您使用的是vundle,可以这样做。Git使vimrc和所有其他设置保持同步,vundle跟踪您的插件/脚本
最适合我的方法是将以下内容放入我的
.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
BitBucket也是我个人的首选,因为我可以轻松地在线编辑文件,而无需提交任何内容,但您可以将.vimrc
文件存放在任何带有可公开访问URL(Dropbox、Google Drive、GitHub等)的地方
更新(2017年10月16日) 使用下面更新的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
let$cloudurl='!curl-H“缓存控制:无缓存”--最长时间10https://bitbucket.org//vimrc/raw/master/global -哦$localcloudpath
你为什么说“使用git”而不是简单的“使用你最喜欢的版本控制系统”?git比cvs、svn、Performce等有什么优势吗?为什么要将它们分为不同的系统?当你想做一些普通的改变,而这些改变在你做了巨大的改变之后可能不会很好地融合在一起,这似乎是一种痛苦。您可以在.vimrc中测试系统,并将所有设置放在一个系统中,这在使用新系统时要方便得多,因为您只需要带一个.vimrc就可以了。(比测试系统更好的是测试能力)这正是我所做的。向上投票。(我还保留我的