Где VIM (gvim/macvim) хранит файлы подкачки для несохраненных / неназванных буферов?
Где VIM (gvim/macvim) хранит файлы подкачки для несохраненных / неназванных буферов? (Если это вообще так).
Предыстория: В течение полуинтенсивного семинара я делал записи в безымянном / несохраненном буфере MacVim, когда у MacBook кончился сок и он выключился из ниоткуда (Он не спал / не спал, как обычно).
Вопрос: Кто-нибудь знает, есть ли вероятность того, что несохраненная работа могла быть сохранена в файл подкачки (.swp) или тому подобное, который можно было бы восстановить?
Сведения о системе: в частности, это произошло с использованием MacVim на Mac OS X 10.5.8 (но интересны также возможные подсказки по восстановлению для других версий). Я еще не перезагружал MacVim в случае, если это инициирует процесс очистки.
5 ответов
Запустите vim и попробуйте:
:recover <filename>
Если у файла никогда не было имени, то просто:
:recover
Это ваша лучшая ставка. Для получения дополнительной информации о файлах подкачки и восстановлении см.:
:help usr_11
Что касается файлов подкачки, обычно они сохраняются в том же каталоге, что и редактируемый файл, но с. добавили начало, чтобы сделать его скрытым, и.swp в конце, но их можно переместить в другое место, например:
:set directory=~/vimswap
или похожие.
Увидеть:
:help swap
Для всех деталей.
Однако файл подкачки vim отличается от отредактированного буфера, поэтому обязательно ознакомьтесь с тем, что можно сделать для восстановления.
РЕДАКТИРОВАТЬ: комментарии, отвечающие на вопрос:
[…] Похоже, что в вашем текущем рабочем каталоге, ~/tmp, /var/tmp и / tmp, есть файлы подкачки, и в моем случае у меня всегда установлен текущий рабочий каталог, и именно там он был сохранен. - dsclementsen 5 октября 2010 года в 1:42
также обязательно ознакомьтесь с командной строкой vim -r arg. Это распечатает все найденные файлы подкачки и где они находятся. Кроме того, в нем будет много дополнительной информации, такой как дата / изменение / имя пользователя / и т. Д. - Neg_EV 5 октября 2010 в 13:49
Я работаю на Windows 10 и :recover
не нашел файл подкачки. vim -r
перечислил файл подкачки из последнего сеанса редактирования (также никогда не сохраненный) с именем _.swp. Восстановление было возможно с :recover _
,
Ответ: повсюду. Трюк в том, чтобы найти правильный. Некоторые находятся в вашем каталоге / tmp, но многие находятся где-то в вашем домашнем каталоге.
Возможно, есть более эффективные способы сделать это, но у меня сработало следующее, когда я потерял безымянный файл (на MacBook):
в домашнем каталоге найдите файлы резервных копий (это займет несколько секунд и, возможно, будет сделано умнее):
find ./ -name ".s*" > findVimBackups.txt
открыть файл:
vim findVimBackups.txt
удалите имена файлов, которые не предназначены для резервного копирования безымянных файлов:
:g!/\/\.s..$/d
:g/svn/d
Теперь я вижу список мест неназванных файлов резервных копий. В каждом из этих каталогов я запускаю следующие, пока не найду файл (ы) с сегодняшнего дня:
ls -ltra <directory>
Я захожу в правильный каталог и открываю vim и набираю: recovery и выбираю правильную резервную копию.
Кажется, что они окажутся в вашем рабочем каталоге :pwd
Это где бы вы ни открывали vim или вы могли бы установить его, используя :cd
или похожие.
Файлы подкачки для безымянных буферов, похоже, просто сбрасываются туда без имени файла, так что в итоге вы получите.swp .swn .swo и т. д. Я обнаружил это не при попытке восстановить что-то, но когда мой файл hg ignore недостаточно покрывал разные суффиксы!
Я догадался, что причиной было множество неназванных буферов с изменениями, и удаление этих буферов привело к исчезновению тайных файлов.
Мне удалось восстановить файл на компьютере с Win 10 следующим образом:
Перейдите в каталог, в котором вы последний раз открывали vim. Для меня это было через ярлык vim на панели задач Win 10. Щелкните правой кнопкой мыши значок vim, еще раз щелкните правой кнопкой мыши ярлык vim и выберите «Свойства». Появится диалоговое окно. Значение в поле «Начать в:» в этом диалоговом окне — это место, где я в последний раз открывал vim. Для меня это значение было%HOMEDRIVE%%HOMEPATH%
. Перейдите в командную консоль DOS и вызовите командыecho %HOMEDRIVE%
иecho %HOMEPATH%
чтобы определить, где это.
Проверьте даты последнего изменения всех файлов _.s* в этом каталоге. Найдите файл, дата последнего изменения которого соответствует дате последнего открытия файла.
Откройте ВИМ. Тип:recover _filename_
где имя_файла — это файл, который вы нашли в предыдущей инструкции.