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

时间:2009-06-23 08:50:00

标签: vim

我有时不是一个非常有秩序的人,我经常发现自己处于丢失旧的完全调整的vimrc文件并且不得不重新开始的情况。或者在不同的客户端上使用不同版本的vimrc文件。由于这个烂摊子对我来说已经失控,我想知道是否有一种管理我的vimrc文件的好方法。

我的第一个举措是将我的_vimrc放在subversion(Google Code)上,我打算维护它。欢迎其他想法。

更新

我决定使用以下解决方案:

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

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

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

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

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

  • 在Windows上,我将Vim文件夹检出Program Files目录中的文件夹。 SVN抱怨已存在的文件,但您可以将其添加到忽略列表中。

8 个答案:

答案 0 :(得分:84)

我使用Dropbox。我在我的保管箱中创建了一个文件夹vim,其中包含我的.vimrc(实际为:vimrc.vim)和colorsplugin等目录。< / p>

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中,所以每当我设置新计算机或重新安装旧计算机时,我都不必记住它们。)

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只是一个例子。存在http://sparkleshare.org/http://one.ubuntu.com等开源服务,但我们鼓励您在互联网上搜索最符合您需求的解决方案。

答案 1 :(得分:20)

我把这些文件放在一个源代码控制系统中,具体是颠覆,但是哪个并不重要。 这给了我所有这些配置文件的历史记录,只需要在新的/其他机器上使用相同的配置文件或useraccount时检查配置文件。

答案 2 :(得分:13)

使用git。我在git repo中有我的.vim和.vimrc文件,我将它们分支给不同的系统。所以我在lappy的分支上,一个基于debian的分支,一个基于RH的分支等。

我将存储库发送到我的所有服务器上,然后根据需要合并更改。然后,当我失去一个,任何其他人将服务。 .vim / .vimrc是应该在DVCS中的文件的绝佳示例。

答案 3 :(得分:4)

最适合我的是将以下内容放在我的.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,那么只需注释掉卷曲线:

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

BitBucket 也是个人偏好,因为我可以轻松地在线编辑文件而无需提交任何内容,但您可以使用可公开访问的网址(Dropbox,Google)随身携带.vimrc个文件Drive,GitHub等。)

更新(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

答案 4 :(得分:3)

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

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

它不仅处理vim.rc,还处理所有类型的配置并附带安装脚本。

答案 5 :(得分:2)


还有一种使用Version Control安装插件的非常好的方法,因为大多数VIM插件在GITHUB上都可用,它也有帮助。 请参阅此文章,该文章告诉您如何使用GIT保持.VIM文件同步,并在PATHOGEN插件的帮助下将插件作为子模块加载。

Use GIT for Syncing VI plugins

除了v​​imcast中提到的内容,我引用了博客。

  1. 将你的dotfiles保存在git中
  2. 使用此命令将插件作为子模块安装 git submodule add http://github.com/tpope/vim-fugitive.git bundle / fugitive

答案 6 :(得分:1)

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

Synchronizing vim with vundle and git

答案 7 :(得分:0)

我在google docs上保留了点文件的副本。