Gdzie VIM (gvim / macvim) przechowuje pliki wymiany dla niezapisanych / nienazwanych buforów? (Jeśli tak się dzieje).
Tło: Przez pół intensywne seminarium robiłem notatki w nienazwanym / niezapisanym buforze MacVim, kiedy MacBookowi zabrakło soku i wyłączył się znikąd (nie spał / hibernował jak zwykle).
Pytanie: Czy ktokolwiek wiedziałby, czy istnieje szansa, że niezapisana praca mogła zostać zapisana w pliku wymiany (.swp) lub podobnym, który można odzyskać?
Szczegóły systemu: W szczególności stało się to przy użyciu MacVim na Mac OS X 10.5.8 (ale potencjalne wskazówki dotyczące odzyskiwania dla innych wersji również są interesujące). Nie uruchomiłem jeszcze MacVima, na wypadek, gdyby to zainicjowało proces czyszczenia.
Odpowiedzi:
Uruchom vima i spróbuj:
:recover <filename>
Jeśli plik nigdy nie miał nazwy, po prostu:
:recover
To twój najlepszy zakład. Aby uzyskać więcej informacji o plikach wymiany i odzyskiwaniu, zobacz:
:help usr_11
Informacje o plikach wymiany zwykle są zapisywane w tym samym katalogu, co edytowany plik, ale w pliku. dodał początek, aby go ukryć i .swp na końcu, ale możliwe jest przeniesienie ich w inne miejsce przez:
:set directory=~/vimswap
lub podobne.
Widzieć:
:help swap
Dla wszystkich szczegółów.
Plik wymiany vim nie jest jednak taki sam jak edytowany bufor, więc przeczytaj tam, co można zrobić w celu odzyskania.
EDYCJA : komentarze odpowiadające na pytanie:
[…] Wygląda na to, że szuka w twoim bieżącym katalogu roboczym ~ / tmp, / var / tmp i / tmp plików wymiany, aw moim przypadku zawsze mam bieżący katalog roboczy i tam właśnie został zapisany. - dsclementsen 5 października 10 o 1:42
sprawdź także wiersz polecenia vim -r arg. Spowoduje to wydrukowanie wszystkich znalezionych plików wymiany i ich położenia. Dodatkowo będzie zawierał wiele dodatkowych informacji, takich jak data / zmodyfikowana / nazwa użytkownika / etc ... - Neg_EV Paź 5 '10 o 13:49
źródło
:recover
bez nazwy pliku. Właśnie przetestowałem to do odzyskania nienazwanego pliku i zadziałało. W każdym razie, nawet jeśli to konkretne polecenie nie pomaga, czytanie tych plików pomocy może.recover
bez argumentów, pozwoliło mi to wybrać nawet z niektórych starszych sesji. W każdym razie plik .swp dla bufora nienazwanego znajduje się prawdopodobnie w / tmp, ale byłby gdzieś indziej, w zależności od tego, czy miałeśset directory= <something>
.:recover!
aby odzyskać niezapisany plik.Pracuję na systemie Windows 10 i
:recover
nie znalazłem pliku wymiany.vim -r
wymieniono plik wymiany z ostatniej sesji edycji (również nigdy nie zapisany) o nazwie _.swp. Odzyskiwanie było możliwe dzięki:recover _
.źródło
Odpowiedź brzmi: wszędzie. Sztuką jest znalezienie właściwego. Niektóre znajdują się w twoim katalogu / tmp, ale wiele z nich znajduje się gdzieś w twoim katalogu domowym.
Być może istnieją bardziej wydajne sposoby, aby to zrobić, ale gdy zgubiłem nienazwany plik (na MacBooku), działały dla mnie:
w katalogu domowym wyszukaj pliki kopii zapasowych (zajmuje to kilka sekund i prawdopodobnie może być mądrzejszy):
Otwórz plik:
usuń nazwy plików, które nie są przeznaczone do tworzenia kopii zapasowych plików nienazwanych:
Teraz widzę listę lokalizacji nienazwanych plików kopii zapasowych. W każdym z tych katalogów uruchamiam następujące czynności, aż znajdę plik (i) z dzisiaj:
I cd do odpowiedniego katalogu i otwórz vim i wpisz: odzyskaj i wybierz poprawną kopię zapasową.
źródło
Wygląda na to, że znajdą się w twoim katalogu roboczym.
:pwd
To tam, gdzie otworzyłeś vima lub alternatywnie możesz go ustawić za pomocą:cd
lub podobnie.Pliki wymiany dla nienazwanych buforów wydają się po prostu tam wrzucane bez nazwy pliku, więc skończysz na .swp .swn .swo itp. Odkryłem, że nie przy próbie odzyskania czegoś, ale gdy mój plik ignorowania hg nie pokrywa wystarczająco różne przyrostki!
Domyślam się, że przyczyną może być wiele nienazwanych buforów ze zmianami, a usunięcie tych buforów spowodowało zniknięcie tajemniczych plików
źródło