Примечание: вы не сказали, какую операционную систему вы используете. Следующее работает с оболочкой Unix, но если вы работаете в Windows, вы можете загрузить обычную Cygwin или другую оболочку.
Раньше я делал то же самое, что и вы, запускайте :e
чтобы заново открыть тот же файл, чтобы получить возможность удалить файл восстановления. После сбоя или неожиданного перезапуска компьютера я очищаю все остаточные файлы восстановления Vim, выполняя vim -r
для файлов подкачки и позволяя продолжить восстановление.
Когда файлы не изменились
Если файлы не изменились, я хочу немедленно удалить файл восстановления. Было бы здорово, если бы Vim мог сделать это автоматически, но, к сожалению, это не так.
Когда файлы изменились
Если файлы изменились, я запускаю команду DiffOrig
чтобы сравнить различия между исходной и восстановленной версиями. Если меня устраивают изменения в файле восстановления, я выхожу, сохраняя файлы с помощью команды :x
. Если нет, я отменяю восстановленные изменения, выходя с :q!
, Если файл восстановления не связан с сохраненным файлом, например, .swp
, я обычно использую :w filename
чтобы сохранить восстановленный буфер в файл с именем файла.
DiffOrig помощник
Я добавил команду DiffOrig в свой .vimrc
чтобы она всегда была доступна.
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
Сценарий оболочки
Я запускаю следующий скрипт в своей оболочке, чтобы найти каждый файл подкачки в текущем дереве каталогов. Каждый файл подкачки затем используется для открытия Vim в «режиме восстановления», а затем удаляется после закрытия Vim.
find . -type f -name '.*.sw?' -exec vim -r "{}" -c DiffOrig \; -exec rm -iv "{}" \;
Опция rm -i
требует подтверждения (y
) для удаления файла. Если вы более уверены в себе и хотите ускорить процесс, это можно пропустить.