Di mana VIM (gvim / macvim) menyimpan file swap untuk buffer yang belum disimpan / tidak bernama? (Jika itu terjadi sama sekali).
Latar Belakang: Sepanjang seminar semi-intens, saya mencatat di buffer MacVim yang tidak disebutkan namanya / tidak disimpan ketika MacBook kehabisan jus dan mati secara tiba-tiba (Tidak tidur / berhibernasi seperti biasanya).
Pertanyaan: Adakah yang tahu jika ada kemungkinan bahwa karya yang belum disimpan mungkin telah disimpan ke file swap (.swp) atau sejenisnya, yang dapat dipulihkan?
Detail sistem: Khususnya ini terjadi menggunakan MacVim pada Mac OS X 10.5.8 (Tetapi petunjuk pemulihan yang mungkin untuk versi lain juga menarik). Saya belum memulai ulang MacVim jika seandainya hal itu akan memulai proses pembersihan.
Jawaban:
Mulai vim dan coba:
:recover <filename>
Jika file tidak pernah memiliki nama, maka cukup:
:recover
Itu taruhan terbaikmu. Untuk informasi lebih lanjut tentang swap file dan pemulihan, lihat:
:help usr_11
Tentang file swap, biasanya file tersebut disimpan dalam direktori yang sama dengan file yang sedang diedit, tetapi dengan a. menambahkan awal untuk membuatnya tersembunyi dan .swp pada akhirnya, tetapi dimungkinkan untuk memindahkannya ke tempat lain dengan sesuatu seperti:
:set directory=~/vimswap
atau serupa.
Lihat:
:help swap
Untuk semua detailnya.
Namun, file swap vim tidak sama dengan buffer yang diedit, jadi pastikan untuk membaca apa yang dapat dilakukan untuk pemulihan.
EDIT : komentar menjawab pertanyaan:
[…] Tampaknya terlihat di direktori kerja Anda saat ini, ~ / tmp, / var / tmp dan / tmp untuk bertukar file dan dalam kasus saya, saya selalu memiliki set direktori kerja saat ini dan di situlah disimpan. - dsclementsen 5 Okt 10 'jam 1:42
juga, pastikan untuk memeriksa arg baris perintah vim -r. Ini akan mencetak semua file swap yang ditemukan dan di mana mereka berada. Selain itu, ia akan memiliki banyak informasi tambahan seperti tanggal / diubah / nama pengguna / dll ... - Neg_EV 5 Okt '10 pada 13:49
sumber
:recover
tanpa nama file. Saya baru saja mengujinya untuk memulihkan file yang tidak disebutkan namanya dan berhasil. Lagi pula, bahkan jika perintah tertentu itu tidak membantu, membaca file bantuan itu mungkin.recover
tanpa argumen, saya dapat memilih dari beberapa sesi sebelumnya. Pokoknya, file .swp untuk buffer yang tidakma mungkin dalam / tmp, tetapi itu akan berada di tempat lain tergantung pada apakah Anda punyaset directory= <something>
.:recover!
untuk memulihkan file saya yang belum disimpan.Saya bekerja pada Windows 10 dan
:recover
tidak menemukan file swap.vim -r
terdaftar file swap dari sesi edit terakhir (juga tidak pernah disimpan) bernama _.swp. Memulihkan dimungkinkan dengan:recover _
.sumber
Jawabannya adalah: semua tempat. Kuncinya adalah menemukan yang tepat. Beberapa ada di direktori / tmp Anda, tetapi banyak dari mereka berada di suatu tempat di bawah direktori home Anda.
Mungkin ada cara yang lebih efisien untuk melakukan ini, tetapi yang berikut ini berfungsi untuk saya ketika saya kehilangan file yang tidak disebutkan namanya (di MacBook):
di direktori home, cari file cadangan (perlu beberapa detik, dan mungkin bisa dibuat lebih pintar):
membuka file:
hapus nama file yang bukan untuk cadangan file yang tidak disebutkan namanya:
Sekarang saya melihat daftar lokasi file cadangan yang tidak disebutkan namanya. Di masing-masing direktori saya menjalankan yang berikut sampai saya menemukan file dari hari ini:
Saya cd ke direktori yang benar dan buka vim dan ketik: recover dan pilih cadangan yang benar.
sumber
Tampaknya mereka akan berakhir di direktori kerja Anda
:pwd
Ini adalah di mana pun Anda membuka vim atau secara bergantian Anda mungkin telah mengaturnya menggunakan:cd
atau serupa.swap file untuk buffer tanpa nama sepertinya baru saja dibuang ke sana tanpa nama file sehingga Anda akan berakhir dengan .swp .swn .swo dll. Saya menemukan ini bukan ketika mencoba memulihkan sesuatu tetapi ketika file hg abaikan saya tidak cukup menutupi. sufiks yang berbeda!
Saya menduga memiliki banyak buffer tanpa nama dengan perubahan mungkin menjadi penyebabnya dan menghapus buffer ini menyebabkan file misteri menghilang
sumber