Terkadang Vim crash dan membuat saya swapfile. Itu luar biasa. Kemudian saya membuka file yang sedang saya edit dan Vim bertanya apakah saya ingin memulihkan. Ya, terima kasih. Setelah selesai, Vim memberi tahu saya,
You may want to delete the .swp file now.
Kenapa, ya, saya lakukan. Bagaimana aku melakukan itu? Saya pikir itu hanya akan mulai menggunakan swapfile lama sebagai swapfile lagi dan membersihkannya ketika saya berhenti, tapi itu tidak benar. Itu membuat yang baru, membersihkan yang di atas, dan ketika saya membuka file lagi itu meminta saya lagi untuk memulihkan dari yang pertama.
Tentunya saya kehilangan sesuatu.
Jawaban:
Cara yang sedikit lebih sederhana:
Dari emulator terminal:
Kemudian pilih pulihkan , dan jika Anda ingin menghapus swap yang Anda tulis (simpan) dan kemudian lakukan ini dari dalam vim:
... dan pilih hapus kali ini.
Saya baru tahu tentang ini, dan saya pikir saya akan melakukannya mulai sekarang. Maka saya tidak akan sengaja menimpa file yang berfungsi baik, jika pemulihan ternyata rusak (meskipun saya belum pernah mencobanya sebelumnya).
Ada juga tips yang relevan tentang pertanyaan ini tentang Stack Overflow (di mana saya menemukan tip ini).
sumber
delete
pilihan, hanya ada: [O] pena (E) dit (R) ecover (Q) uit (A) bort, apa yang harus saya lakukan?(D)elete
opsi, lihat:help swap-exists
; kutipanOn Unix this choice is only offered when the process that created the swap file does not appear to be running.
Ie mungkin Anda memiliki proses vim lain berjalan yang menyebabkan opsi ini disembunyikan. Mungkin juga menjelaskan mengapa Anda memilikiswp
file di tempat pertama!Untuk Bersihkan SEMUA vim Tukar File di Direktori:
Jika Anda yakin tidak memerlukan swap file vim di pohon direktori dan ingin menyingkirkannya, Anda dapat menggunakan perintah berikut di direktori saat vim tidak berjalan (bahkan di jendela lain atau bahkan login yang berbeda sidang):
Beberapa inspirasi dan pemikiran datang dari Menghapus file .swp sampah di Google Groups. Ini akan menghapus semua file yang namanya berakhir dengan
.swk
,.swl
,.swm
,.swn
,.swo
, atau.swp
di pohon direktori saat ini.Ini mungkin bukan yang Anda inginkan, karena beberapa alasan:
Sebagaimana dinyatakan, itu akan menghapus semua file yang namanya berakhir dengan
Penulis asli posting ini mengatakan,.swk
,.swl
,.swm
,.swn
,.swo
, atau.swp
, dan bukan hanya.swp
. Gary Johnson berkata ,Di sisi lain, itu mungkin kurang. rubel menyarankan
yang cocok dengan semua ekstensi tiga huruf (huruf kecil) mulai dari
.saa
hingga.swp
. Dia menambahkan, “Berhati-hatilah, sementara ini adalah solusi yang lebih lengkap, itu akan mengeluarkan file gambar .svg dan .swf adobe flash file. Anda mungkin ingin memodifikasi regex jika Anda bekerja dengan file-file.”Hal ini juga cocok.sav
,.snd
(data suara),.sql
,.src
,.srt
(SubRip video yang subtitle format), dan banyak ekstensi umum lainnya.Mungkin berlebihan. Sebagaimana dinyatakan, itu akan menghapus semua file yang namanya berakhir dengan
.swk
,.swl
,.swm
,.swn
,.swo
, atau.swp
. Tetapi, tampaknya, file swap vim biasanya merupakan file “dot”. Jika Anda mengedithello.cpp
, file swap mungkin.hello.cpp.swp
. Seperti yang ditunjukkan (tetapi tidak dijelaskan) dalam jawaban rouble , lebih aman untuk menghapus hanya file yang namanya dimulai dengan titik; misalnya dengansumber
Ketik
ls -a
yang mencantumkan SEMUA file dalam direktoriketik
rm .whatever.your.swp
dan tekanenterSesederhana itu.
File apa pun yang tampil dengan
.
di depan adalah file tersembunyi dan biasanya tidak terlihat.Ingatlah bahwa perubahan itu bersifat segera dan permanen jadi berhati-hatilah.
sumber
file.swp
ataufile.swo
. Maka saya harus kembali ke tempat saya sebelumnya. Memukul:e
adalah solusi yang lebih sederhana.ls: cannot access +A: No such file or directory
Btw. beberapa plugin melakukannya secara otomatis untuk Anda: autoswap.vim
dari uraian:
sumber
Tidak, AFAIK Anda tidak melewatkan apa pun.
Vim
terus menyimpan swapfile sebagai cadangan hingga Anda menghapusnya secara eksplisit.Cukup simpan dan keluar dan buka kembali file yang sama. Anda akan diminta (lagi) dengan
Sekarang cukup tekan
d
:)sumber
Vim, seperti kebanyakan perintah Unix, sederhana dan eksplisit, bukan dengan asumsi dan implisit.
Anda pulih dengan (r). Jika Anda tidak menyukai pemulihan atau pemulihannya rusak, Anda dapat membuangnya. Jika Anda menyukainya, Anda dapat menyimpan file. File pemulihan tidak dihapus untuk Anda karena ini tidak eksplisit dan tidak akan benar untuk 100% situasi.
Jadi Anda (r) ecover, (w) rite dan (q) uit, lalu edit lagi dan pilih (d) hapus atau "rm .myfile.js.swp" dan edit lagi. Ini cepat dilakukan dan selalu, dari sudut pandang Vim, 100% perilaku yang benar.
sumber
File-file ini juga mengganggu bagi saya, tetapi saya mengatur opsi dalam .vimrc -
set noswapfile
untuk mencegah vim membuatnya dan, sebaliknya, menyimpan file dalam memori.sumber
Berikut ini adalah regex yang lebih lengkap untuk membersihkan semua file swap vim berdasarkan file gitignore Github untuk Vim
Hati-hati, meskipun ini adalah solusi yang lebih lengkap, itu akan mengeluarkan file gambar .svg dan .swf adobe flash file. Anda mungkin ingin memodifikasi regex jika Anda bekerja dengan file-file itu.
sumber
Ini cuplikan untuk ditambahkan
.vimrc
. Ini menghapus semua file swap yang terkait dengan buffer file saat ini dan mengatur ulang ekstensi swap.Setelah bertemu dengan keadaan sulit, seseorang dapat menjalankan
:DeleteFileSwaps
Ini bagus jika digabungkan dengan:windo
atau:tabdo
perintah.Rincian lebih lanjut : File dapat memiliki lebih dari 1 file swap. Alasannya karena file swap, dengan ekstensi
.swp
, masih ada danvim
akan terus membuat yang baru karenanya. Untuk mengetahui apakah.swp
ada::sw
untuk mendapatkan file swap saat ini..swp
.Cuplikan di atas mengikuti proses yang sama, tetapi hapus semua file swap.
Semoga ini membantu.
sumber
Dari manual
:h swap
:sumber
.swp
file,:sw
perintah itu mungkin akan memberi Anda nama.swo
file - yang bukan yang ingin Anda hapus.jika Anda ditanya, tekan Duntuk menghapus file swap file saat ini.
jika tidak maka Anda harus melakukannya secara manual.
salah satu cara alternatif untuk melakukan ini adalah:
untuk mencari / mencari file:
dan kemudian hapus file ini:
sumber
Anda dapat gunakan,
Contoh:
sumber
<ext>
berlebihan di sini karena nama file setidaknya di Linux termasuk nol atau lebih ekstensi.