51

Я попытался открыть файл .swp, используя vi и cat но он отображает ненужные файлы.

5 ответов5

81
vim -r .swp

Это переходит в режим восстановления и дает вам больше информации. Я думаю, что это то, что вы хотите.

.swX .swX остаются, если сеанс с несохраненным файлом был убит / аварийно завершен / произошло что-то еще плохое. Они также присутствуют во время открытия несохраненного буфера в сеансе Vim. vim -r читает эти временные файлы и воссоздает содержимое. После того, как вы восстановите его, просто сохраните его как обычно, например :w newfilename .

16

Вам не нужно иметь оригинальный файл для восстановления .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 для восстановления последних изменений. Если у вас нет резервной копии файла, вам действительно не повезло.

7

1 Откройте файл подкачки .file.swp в vim

2 :recover восстановит ваш файл

7

Откройте оригинальный файл с помощью vim и выберите вариант восстановления.

6

Прочитав комментарии Вегара Вестерлунда и Гептита, я хотел узнать, в какой момент 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?

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