Удаленный каталог с файлами, все еще открытыми в vim (восстановить?)

Помощь! Вместо cp -Rf dir dir.bak для резервного копирования моего активного проекта я сделал rm -Rf dir dir.bak. Хуже от этого не будет :(

Я запустил extundelete --restore-directory на моем разделе ext3, и он восстановил часть моего каталога.

Я надеюсь, что у меня все еще открыт vim. Сохраняет ли vim содержимое каждого файла в буфере памяти, даже если он не находится на этой вкладке vim? У меня открыты две вкладки vim, около 6 окон на каждой вкладке. В общем, я вот-вот потеряю 30 исходников :(

Есть ли способ сделать :wa! в vim, когда базовый каталог был удален? Если я заново создам базовый каталог, vim все равно не сможет сохранить файлы, я думаю, потому что иноды для открытия файлов недействительны.

Есть ли способ сохранить все буферы, открытые в vim, в новый каталог? Я не знаю, какое представление файла содержат буферы. Если я переключу вкладки vim (я еще этого не сделал), он попытается перечитать эти файлы с диска, верно?

Любые творческие решения внутри и вне vim ОЧЕНЬ ценятся!!


person user1088084    schedule 02.12.2013    source источник
comment
Попробуйте «:w /tmp/filename» в ваших сеансах vim, он должен «сохранить как» в другой папке и файле.   -  person Jim Black    schedule 03.12.2013


Ответы (2)


Это должно работать, если вы пересоздаете папки. Если файлы открыты в буферах, они находятся в памяти. Буферы просто хранят путь для сохранения имен файлов. Иноды — это конкретные детали реализации файловой системы, о которых vim ничего не знает.

Если дерево каталогов воссоздать не очень сложно, вы можете просто попробовать :wa, пока не создадите заново все недостающие папки.

person Uku Loskit    schedule 03.12.2013
comment
Я заново создал каталог, и даже просто :w в одном открытом буфере не работает. Я сделал :cd в vim, а затем смог сохранить этот конкретный буфер. Кажется, мне нужно сделать это для каждого активного окна, поэтому я не думаю, что смогу заставить это работать для невидимых буферов :( - person user1088084; 03.12.2013

Для решения проблемы случайного удаления вещей я сделал alias rm=trash-put, который будет помещать удаленные файлы в корзину для возможного последующего поиска. Я получил эту информацию отсюда: http://www.webupd8.org/2010/02/make-rm-move-files-to-trash-instead-of.html

person user1088084    schedule 04.12.2013