İşte eklemek için bir snippet .vimrc
. Geçerli dosya arabelleğiyle ilişkilendirilmiş tüm takas dosyalarını siler ve takas uzantısını sıfırlar.
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()
Bir çıkmazla karşılaştığında, biri çalıştırılabilir. :DeleteFileSwaps
Bu, komutlarla :windo
veya :tabdo
komutlarla birleştirildiğinde harikadır .
:tabdo DeleteFileSwaps
Diğer ayrıntılar : Bir dosyada 1'den fazla takas dosyası bulunabilir. Bunun nedeni takas dosyasının uzantısı ile birlikte .swp
hala var ve vim
bu nedenle de yenilerini yaratmaya devam edecek. Var olup olmadığını bulmak için .swp
:
- Hedef dosya vim açıkken
:sw
mevcut takas dosyasını almak için çalıştır .
- Geçerli takas dosyasının bulunduğu dizini kontrol edin.
- Ardından, dizinin açık dosyanın adı ile bir takas dosyası içerip içermediğini ve bunun bir uzantısı olup olmadığını kontrol edin
.swp
.
Yukarıdaki kod parçası aynı işlemi izler, ancak tüm takas dosyalarını kaldırın.
Bu yardımcı olur umarım.