Чтобы ответить на вопрос о восстановлении, Vim ничего не знает о резервных копиях.Это система резервного копирования очень проста - написать файл.Чтобы восстановить, вы должны сделать это вручную.
Тем не менее, вы можете добавить больше информации в свои резервные копии, чтобы упростить восстановление.
В идеале, backupdir
будет выдерживать трейлинг //
заставить его расширить путь к файлу и заменить /
на %
.Например, /tmp/foo.rb
станет резервным файлом `tmp% foo.rb '.
См. :help undodir
и :help directory
для настроек каталога undo
и *.swp
, которые принимают //
.
Но мы можем подделать это!
" Prevent backups from overwriting each other. The naming is weird,
" since I'm using the 'backupext' variable to append the path.
" So the file '/home/docwhat/.vimrc' becomes '.vimrc%home%docwhat~'
au BufWritePre * let &backupext ='@'.substitute(substitute(substitute(expand('%:p:h'), '/', '%', 'g'), '\', '%', 'g'), ':', '', 'g').'~'
Файлы резервных копий читают filename-then-directory, но они работают и должны быть достаточно уникальными.
Пример: .vimrc%home%docwhat~
является резервной копией /home/docwhat/.vimrc
Если вам нужно ежеминутное резервное копирование, чтобы вы теряли меньше работы, вы можете добавить метку времени к имени файла:
au BufWritePre * let &backupext = substitute(expand('%:p:h'), '/', '%', 'g') . '%' . strftime('%FT%T') . '~'
Но я быРекомендуем настроить cron для регулярной очистки этого каталога.Если вы отредактируете столько моих файлов, этот файл быстро станет огромным.
Кроме того, вы можете сделать что-нибудь умное и изменить backupdir
перед записью (с помощью хука BufWritePre
), но этот уровеньум с vim вне меня (на данный момент).
Чао!