VIM уничтожает символические ссылки под Windows

Похоже, что при работе с файлом в VIM он в основном использует резервную версию файла, а затем перезаписывает оригинал при сохранении. Это проблема при использовании символических ссылок под Windows (например, mklink link_path target_path ), поскольку она разрушает символическую ссылку.

Кто-нибудь знает об этом? Я уже видел это в FAQ, который конкретно касается этой проблемы, но рекомендуемое обходное решение не работает. Возможно, это произошло в какой-то момент, но не для Vim 7.3 (под Windows 7 x64).

  • Ubuntu - Создайте ссылку на указанный каталог, чтобы я мог легко перейти на этот каталог
  • Общие домашние папки между операционными системами
  • Как установить короткую ссылку symlink на Sublime Text 3 в терминале?
  • Удаление символической ссылки папки Ubuntu удаляет содержимое целевой папки, когда выполняется через OSX & Samba
  • Доступ запрещен на mklink
  • Разрешение на создание символических ссылок в Windows 7?
  • Как у меня нет веб-браузера по умолчанию, поэтому система спрашивает, какой браузер использовать, когда я нажимаю ссылку?
  • Как восстановить закрытую заметку в Windows?
  • Как найти время работы в Windows?
  • Колонка размера папки в проводнике в Windows Vista / Seven
  • Восстановление поврежденных файлов Bitlocker - Windows 8.1
  • Не удается включить удаленный рабочий стол в Windows 7 Professional
  • 4 Solutions collect form web for “VIM уничтожает символические ссылки под Windows”

    Эта ошибка была исправлена ​​в 7.3.1182 . Vim 7.4 – первый релиз на vim.org для включения этого патча (выпущен 2013-08-10).

    Чтобы поддерживать более старые версии vim, вы можете использовать что-то вроде этого в своем vimrc:

     " Writing files on Windows doesn't preserve file attributes seen via cygwin " (presumably because the created backup copy didn't inherit them correctly). if has('win32') && v:version < 704 set backupcopy=yes endif 

    Hum на окнах, символическая ссылка перемещается для создания файла резервной копии. Затем исправления записываются с первым именем. (NB: временный файл по-прежнему связан с исходным файлом)

    Они говорят, что «Единственный способ исправить это в текущей версии – это не делать резервный файл, например :set nobackup nowritebackup »,

    Это обходное решение, о котором вы говорили? Потому что это работает над моей перспективой.

    EDIT: Конечно, у вас не будет резервных копий.

    Если вам все еще нужны резервные копии, вы можете использовать:

     set bkc=yes 

    (Почему? Read :h bkc ), он решает проблему в Windows.

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

    Существует альтернатива, использующая resolve () для разрешения пути, на который указывает ссылка. Я использую version7.3, и у решения (), похоже, не удается разрешить ссылки, сделанные с помощью команды mklink в Windows):

    http://vim.1045645.n5.nabble.com/How-do-I-make-e-path-completion-follow-symlinks-td1175347.html

    Использование опции backupcopy может быть приятнее, если у вас есть только определенные файлы или каталоги, в которых вы ожидаете найти символические ссылки. Например, я использую символические ссылки для редактирования файлов времени выполнения в моем репозитории исходного кода vim и вижу изменения, отраженные в моем каталоге ~ / vimfiles:

     " for some reason, backupcopy=auto doesn't work on Windows to keep " symbolic links. I use these in my vimfiles directory to override some " runtime files which I really edit in the vim source repository. autocmd BufWritePre ~/vimfiles/* set backupcopy=yes autocmd BufWritePost ~/vimfiles/* set backupcopy& 

    Обратите внимание, что значение по умолчанию «backupcopy» ПРЕДОСТАВЛЯЕТСЯ, чтобы сохранить символические ссылки при записи, в соответствии с: help.

    См. http://groups.google.com/group/vim_dev/browse_thread/thread/a85f18df1b543fec.

    Давайте будем гением компьютера.