Как поделиться одним файлом vimrc между несколькими клиентами? - PullRequest
52 голосов
/ 23 июня 2009

Временами я не очень упорядоченный человек, и я часто нахожусь в ситуации потери моего старого полностью настроенного файла 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 ]

84 голосов
/ 26 июля 2009

Я использую Dropbox . Я создал папку 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, поэтому мне не нужно запоминать их всякий раз, когда я настраиваю новый компьютер или переустанавливаю старый.)

Бесплатная версия 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 - только один пример. Сервисы OpenSource, такие как http://sparkleshare.org/ и http://one.ubuntu.com, существуют, но вам рекомендуется искать в Интернете решение, которое наилучшим образом соответствует вашим потребностям.

20 голосов
/ 23 июня 2009

Я поместил эти файлы в систему управления версиями, в частности, в Subversion, но не важно, какие именно. Это дает мне историю всех таких файлов конфигурации, и это просто вопрос проверки файла конфигурации, когда я хочу тот же самый файл на новом / другом компьютере или счете пользователя.

13 голосов
/ 23 июня 2009

Используйте Git. У меня есть файлы .vim и .vimrc в репозитории git, и я разветвляю их для разных систем. Итак, у меня есть ветка для lappy, одна ветка для Debian, другая для RH и т. Д.

Я запускаю репозитории на всех своих серверах и объединяю изменения вокруг себя, как я считаю нужным. Затем, когда я потеряю один, любой другой будет служить. .vim / .vimrc - превосходные примеры файлов, которые должны быть в DVCS.

4 голосов
/ 14 января 2016

Что лучше всего подходит для меня, так это поместить в мой файл .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, он загружает и использует последний .vimrc файл из моего хранилища BitBucket. Он будет использовать последнюю загруженную .vimrc, если подключение к Интернету не существует.

Единственное требование (кроме активного подключения к Интернету) - CURL установлен.


Если вы не хотите загружать последнюю версию .vimrc каждый раз, просто закомментируйте строку скручивания:

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

BitBucket также является личным предпочтением, потому что я могу легко редактировать файл онлайн без необходимости что-либо фиксировать, но вы можете разместить свой файл .vimrc в любом месте с общедоступным URL (Dropbox, Google Drive, GitHub и т. д.)


ОБНОВЛЕНИЕ (16/10/2017)

При использовании приведенной ниже обновленной команды curl всегда получается свежий .vimrc из битбакета. Он также будет использовать тайм-аут и использовать последнюю загруженную .vimrc_cloud, если вы не в сети или используете медленное соединение.

let $cloudurl = '!curl -H "Cache-Control: no-cache" --max-time 10 https://bitbucket.org/<USERNAME>/vimrc/raw/master/global -o '. $localcloudpath
3 голосов
/ 26 июня 2010

Как и другие говорили: используйте систему контроля версий.

Вот такой проект, который легко раскошелиться и расширить: http://github.com/ryanb/dotfiles

Он работает не только с vim.rc, но и со всеми типами конфигурации и поставляется со скриптом установки.

2 голосов
/ 26 апреля 2013


Существует также очень хороший способ установки плагинов с помощью контроля версий, так как большинство плагинов VIM доступны на GITHUB, это также помогает. Ознакомьтесь с этой статьей, в которой рассказывается, как синхронизировать файл .VIM с помощью GIT, и загрузить плагин как субмодуль с помощью плагина PATHOGEN.

Используйте GIT для синхронизации плагинов VI

Вкратце о том, что упоминается в vimcast, и я цитирую из блога.

  1. Храните ваши точечные файлы в git
  2. Установка плагинов как субмодулей с помощью этой команды
    подмодуль git add http://github.com/tpope/vim-fugitive.git связка / беглец
1 голос
/ 11 октября 2013

Если вы используете Vundle, вы можете сделать это таким образом. Git синхронизирует vimrc и все другие настройки, а vundle отслеживает ваши плагины / скрипты.

Синхронизация vim с vundle и git

0 голосов
/ 23 июня 2009

Я храню копию моих точечных файлов s в Google Docs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...