Я попытался открыть файл .swp, используя vi
и cat
но он отображает ненужные файлы.
5 ответов
vim -r .swp
Это переходит в режим восстановления и дает вам больше информации. Я думаю, что это то, что вы хотите.
.swX
.swX остаются, если сеанс с несохраненным файлом был убит / аварийно завершен / произошло что-то еще плохое. Они также присутствуют во время открытия несохраненного буфера в сеансе Vim. vim -r
читает эти временные файлы и воссоздает содержимое. После того, как вы восстановите его, просто сохраните его как обычно, например :w newfilename
.
Вам не нужно иметь оригинальный файл для восстановления .swp. Просто откройте файл, как будто он существует. vim будет искать файл с расширением .swp и предложит его восстановить.
например:
$ ls -a
. .. .test.txt.swp
$ vim test.txt
[...]
Swap file ".test.txt.swp" already exists!
[O]pen Read-Only, (E)dit anyway, (R)ecover, (D)elete it, (Q)uit, (A)bort:
Просто нажмите R, чтобы восстановить его и:wq файл
Изменить: Обратите внимание, что файл .swp содержит только изменения, внесенные в файл (см. Комментарий). Это означает, что вам нужно будет извлечь последнюю копию файла из резервной копии, а затем использовать vim для восстановления последних изменений. Если у вас нет резервной копии файла, вам действительно не повезло.
1 Откройте файл подкачки .file.swp
в vim
2 :recover
восстановит ваш файл
Откройте оригинальный файл с помощью vim и выберите вариант восстановления.
Прочитав комментарии Вегара Вестерлунда и Гептита, я хотел узнать, в какой момент vim требуется исходный файл (или резервная копия) для восстановления из файла .swp. Вот что сделал:
Я открыл файл 975 строк, отредактировал его в строке 949 (создание файла .swp
) и завершил процесс, затем удалил оригинал. $ vim Original_File
спросил, хочу ли я восстановиться после .swp »> да; только первые 68 строк и последние 34 строки (начиная с 8 строк выше моего редактирования) были фактически восстановлены.
Затем я повторил тест с небольшими файлами: от 20 до 200 строк файл .swp содержал 100% исходного содержимого. Но при 300 строках в .swp были включены только первые 68 и 18 последних строк (начиная с 2 строк выше моего редактирования).
В заключение полезно знать, что vim всегда сохраняет "header" и "bottom" файла в файлах .swp. Может быть, есть настройка, чтобы контролировать, сколько строк должно содержать .swp?