Відповіді:
vim -r .swp
Це переходить у режим відновлення та надає більше інформації. Я думаю, це те, чого ти хочеш.
.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 для відновлення останніх змін. Якщо у вас немає резервної копії файлу, вам справді не пощастило.
The original file is no longer needed for recovery.
:preserve
і :set cpoptions=...&
залишає у каталозі .swp та .swo файл і пропонує відновити з будь-якого. Використовуючи vim -r <file>
ви можете обирати між .swp та .swo. Подальші зміни редагують .swn, .swm тощо, які, як видається, є частковою сумою свопів до цього моменту. Ви можете повернутися до версії за своїм смаком і відредагувати (~ = вилка) або зберегти (~ = сховище). Врешті-решт, ви можете відзначити розміщення файлів своп, демонструвати їх резервні копії тощо. Я можу помилитися з деталями, коли мова йде про більші файли - я не впевнений, як це впливає на додаткові файли підкачки - див. Нижче.
Відкрийте оригінальний файл за допомогою vim та виберіть варіант відновлення.
Прочитавши коментарі Вегара Вестерлунда та Гептита, я хотів дізнатися, в який момент vim потрібен оригінальний файл (або резервна копія) для відновлення з .swp-файлу. Ось що було:
Я відкрив файл 975 рядків, відредагував його в рядку 949 (створив .swp
файл) і вбив процес, а потім видалив оригінал. $ vim Original_File
запитав, чи хочу я відновитися після .swp »> так; фактично було відновлено лише перші 68 рядків та останні 34 рядки (починаючи з 8 рядків вище моєї редакції).
Потім я повторив тест з меншими файлами: від 20 до 200 рядків .swp файл містив 100% початкового вмісту. Але в 300 рядках лише перші 68 і 18 останніх рядків (починаючи з 2 рядків вище моєї редакції) були включені до .swp.
Як висновок, добре знати, що vim завжди зберігає "заголовок" і "дно" у файлах .swp. Можливо, є налаштування, щоб контролювати, скільки рядків має містити .swp?