Ini cuplikan untuk ditambahkan .vimrc. Ini menghapus semua file swap yang terkait dengan buffer file saat ini dan mengatur ulang ekstensi swap.
function! DeleteFileSwaps()
write
let l:output = ''
redir => l:output
silent exec ':sw'
redir END
let l:current_swap_file = substitute(l:output, '\n', '', '')
let l:base = substitute(l:current_swap_file, '\v\.\w+$', '', '')
let l:swap_files = split(glob(l:base.'\.s*'))
" delete all except the current swap file
for l:swap_file in l:swap_files
if !empty(glob(l:swap_file)) && l:swap_file != l:current_swap_file
call delete(l:swap_file)
echo "swap file removed: ".l:swap_file
endif
endfor
" Reset swap file extension to `.swp`.
set swf! | set swf!
echo "Reset swap file extension for file: ".expand('%')
endfunction
command! DeleteFileSwaps :call DeleteFileSwaps()
Setelah bertemu dengan keadaan sulit, seseorang dapat menjalankan :DeleteFileSwaps
Ini bagus jika digabungkan dengan :windoatau :tabdoperintah.
:tabdo DeleteFileSwaps
Rincian lebih lanjut : File dapat memiliki lebih dari 1 file swap. Alasannya karena file swap, dengan ekstensi .swp, masih ada dan vimakan terus membuat yang baru karenanya. Untuk mengetahui apakah .swpada:
- Dengan file target terbuka di vim, jalankan
:swuntuk mendapatkan file swap saat ini.
- Periksa direktori tempat file swap saat ini terkandung.
- Kemudian periksa apakah direktori berisi file swap dengan nama file yang terbuka dan memiliki ekstensi
.swp.
Cuplikan di atas mengikuti proses yang sama, tetapi hapus semua file swap.
Semoga ini membantu.