Как совместно использовать один vimrc файл среди нескольких клиентов?

Здесь я вижу два разных вопроса:

Почему плохая идея lock на публичном объекте?

идея заключается в том, что блокировка объекта ограничивает доступ, пока поддерживается lock - это означает, что ни один из его членов не может быть доступен, а другие источники могут не знать о lock и пытаться использовать экземпляр, даже пытаясь получить а lock сами, следовательно, вызывает проблемы.

По этой причине используйте выделенный экземпляр объекта для блокировки.

Как заблокировать эти методы, чтобы они не работали в тандеме?

Вы можете рассмотреть Mutex учебный класс; создание «глобального» мьютекса позволит вашим классам работать на основе знания состояния блокировки во всем приложении. Или вы можете использовать общий экземпляр ReaderWriterLockSlim , но я бы не стал рекомендовать его совместное использование между классами.

52
задан StackedCrooked 4 July 2013 в 11:29
поделиться

5 ответов

Я использую Dropbox . Я создал папку vim в моем Dropbox, которая содержит мои .vimrc (на самом деле: vimrc.vim ) и цвета , подключаемый модуль и т. Д.

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 , но вам рекомендуется поискать в Интернете решение, которое подойдет лучше всего вам нужно.

84
ответ дан 7 November 2019 в 09:10
поделиться

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

20
ответ дан 7 November 2019 в 09:10
поделиться

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

0
ответ дан 7 November 2019 в 09:10
поделиться

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

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

13
ответ дан 7 November 2019 в 09:10
поделиться

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

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

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

3
ответ дан 7 November 2019 в 09:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: