7

Я пытаюсь сохранить мой конфиг gVIM в централизованном месте. Для этого я сделал

mklink c:\users\me\.vimrc c:\users\me\configs\_vimrc

Это прекрасно работает, пока я не изменю $ MYVIMRC внутри VIM. Это мгновенно разрывает символическую ссылку (c:\users\me.vimrc перестал быть символической ссылкой и стал обычным файлом). Есть ли способ исправить это поведение trange? ОС Windows Vista с последними обновлениями. gVIM 7.2 с официального сайта.

3 ответа3

3

Vim должен обрабатывать это правильно по умолчанию. (: помогите сделать резервную копию)

По умолчанию на не-Unix платформах для резервного копирования задано значение "auto". Обычно он переименовывает файл и записывает новый измененный файл при сохранении, но должен изменить исходный файл, если исходный файл является ссылкой или содержит ветвь ресурса и т.д.

Несколько возможностей:

  1. Ваша версия vim не распознает файл как символическую ссылку.
  2. Вы установили backupcopy или связанную переменную (breaksymlink?) переопределить поведение по умолчанию.

Я был бы удивлен, если это 1, так как вы имеете дело с последней версией vim. Это происходит, если у вас есть пустой .vimrc?

1

Пытаться

mklink /J c:\users\me c:\users\me\configs

Это создаст перекрестную директорию с жесткими ссылками между c:\users\me и c:\users\me\configs которую будет учитывать vista при переписывании vimrc.

1

Пользователь xaizek предложил обходной путь в комментариях к связанному вопросу, который я задал: символическая ссылка на .vimrc в windows делает файл доступным только для чтения при записи.Зачем? , Я принял его решение, но сделал назначение $MYVIMRC условным, потому что я использую как Windows, так и OSX системы:

Итак, в моем файле Windows ~/.vimrc меня есть:

source /path/to/shared/vimrc

Затем в общем файле .vimrc меня есть:

if has("win32")
    let $MYVIMRC='~/path/to/shared/.vimrc'
endif

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .