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 :windo
atau :tabdo
perintah.
:tabdo DeleteFileSwaps
Rincian lebih lanjut : File dapat memiliki lebih dari 1 file swap. Alasannya karena file swap, dengan ekstensi .swp
, masih ada dan vim
akan terus membuat yang baru karenanya. Untuk mengetahui apakah .swp
ada:
- Dengan file target terbuka di vim, jalankan
:sw
untuk 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.