Де VIM (gvim / macvim) зберігає файли підкачки для незбережених / неназваних буферів?


50

Де VIM (gvim / macvim) зберігає файли підкачки для незбережених / неназваних буферів? (Якщо це взагалі).

Фон: Протягом напівінтенсивного семінару я робив замітки в неназваному / незбереженому буфері MacVim, коли MacBook вичерпав сік і виключився з нізвідки (він не спав / сплячий, як зазвичай).

Питання: Хто-небудь знатиме, чи є шанс, що незбережені роботи можуть бути збережені в файлі swap (.swp) або подібних, які можна відновити?

Деталі системи: Зокрема, це сталося з використанням MacVim на Mac OS X 10.5.8 (Але можливі підказки відновлення для інших версій також представляють інтерес). Я не перезавантажив MacVim, але у випадку, якщо це станеться, ініціюватиме процес очищення.


1
Пояснення: Під незбереженими я маю на увазі ніколи не збережений. Файл був створений натисканням клавіші Command-T (я вважаю, що він відповідає: tabe), тобто новий неназваний буфер відкривається в новій вкладці. (Я б звичайно робив ': sav somefilename' на пізньому етапі.
davur

Не має значення. Див. Доповнення до моєї відповіді.
frabjous

Відповіді:


55

Запустіть vim та спробуйте:

:recover <filename>

Якщо файл ніколи не мав назви, то просто:

:recover

Це найкращий вибір. Докладніше про файли підкачки та відновлення див.

:help usr_11

Про файли підкачки, як правило, вони зберігаються в тому ж каталозі, що й файл, що редагується, але з a. додав початок, щоб його було приховано та .swp наприкінці, але можна перемістити їх у іншому місці, наприклад:

:set directory=~/vimswap

або подібні.

Подивитися:

:help swap

Для всіх деталей.

Файл підкачки vim не збігається з редагованим буфером, тому обов'язково прочитайте там те, що можна зробити для відновлення.


EDIT : коментарі, які відповідають на запитання:

[…] Здається, ви шукаєте поточний робочий каталог, ~ / tmp, / var / tmp та / tmp для файлів підкачки, і в моєму випадку у мене завжди є поточний набір робочих каталогів і саме там він збережений. - dsclementsen 5 жовтня в 1:42

Крім того, обов'язково перевірте аргумент командного рядка vim -r. Це роздрукує всі знайдені файли підкачки і де вони знаходяться. Крім того, у нього буде багато додаткової інформації, наприклад дата / зміна / ім'я користувача / і т.д. - Neg_EV 5 жовтня в 13:49


Це не допоможе. Під незбереженими я маю на увазі ніколи не збережений. Це означає, що я відкрив новий буфер з: tabe або (Command + T). Отже, ми говоримо про незбережений / неназваний буфер. Чи існує розташування за умовчанням, де зберігається цей вид незбережених робіт?
davur

3
Спробуйте :recover без назви файлу. Я тільки що перевірив, що для відновлення неназваного файлу, і він працював. У всякому разі, навіть якщо ця команда не допоможе, читання цих файлів допомоги може бути.
frabjous

1
Це не так далеко, як я можу сказати. Я тільки що перевірив, убиваючи vim зовнішньо під час редагування нового файлу. Але коли я побіг recover без аргументів, це дозволило мені вибрати навіть з деяких старих сесій. У будь-якому випадку, файл .swp для буфера unnmaed, ймовірно, знаходиться в / tmp, але це було б де-небудь ще залежно від того, чи було у вас set directory= <something>.
frabjous

2
Крім того, обов'язково перевірте аргумент командного рядка vim -r. Це роздрукує всі знайдені файли підкачки і де вони знаходяться. Крім того, у нього буде багато додаткової інформації, наприклад дата / зміна / ім'я користувача / і т.д.
Neg_EV

1
Мені довелося скористатися командою :recover! для відновлення незбереженого файлу.

2

Я працюю на Windows 10 і :recover не знайшов файл підкачки. vim -r перерахував файл підкачки з останнього сеансу редагування (також ніколи не був збережений) з ім'ям _.swp. Відновлення було можливим з :recover _.


1

Відповідь: всюди. Хитрість полягає в пошуку правильного. Деякі з них знаходяться у вашому каталозі / tmp, але багато з них знаходяться десь під вашим домашнім каталогом.

Можливо, є більш ефективні способи, але наступні дії працювали для мене, коли я втратив неназваний файл (на MacBook):

у домашньому каталозі, пошук файлів резервних копій (займає кілька секунд і, ймовірно, може бути розумнішим):

find ./ -name ".s*" > findVimBackups.txt

відкрити файл:

vim findVimBackups.txt

видалити імена файлів, які не призначені для резервних копій файлів без назви:

:g!/\/\.s..$/d
:g/svn/d

Тепер я бачу список розташувань файлів без назви. У кожному з цих каталогів я виконую такі дії, поки не знайду файли з сьогоднішнього дня:

ls -ltra <directory>

Я вписую в потрібний каталог і відкриваю vim і type     : відновити і виберіть правильну резервну копію.


0

Здається, вони потраплять у ваш робочий каталог :pwd Це де б ви не відкривали vim або почергово ви могли б встановити його використання :cd або подібні.

файли підкачки для неназваних буферів, здається, просто скидаються там без назви файлів, тому ви опиняєтеся у файлі .swp .swn .swo і т.д. різні суфікси!

Я здогадався, що багато неназваних буферів із змінами могли бути причиною, і видалення цих буферів викликало зникнення таємничих файлів

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.