Ecco un frammento da aggiungere in .vimrc
. Cancella tutti i file di swap che sono associati al buffer del file corrente e ripristina l'estensione di 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()
``` ```
:tabdo DeleteFileSwaps
Una volta incontrato il problema, si può eseguire :DeleteFileSwaps
Questo è ottimo se combinato con i comandi :windo
o :tabdo
.
&001
Altri dettagli : Un file può avere più di 1 file di swap. La ragione è che il file di swap, con estensione .swp
, esiste ancora e vim
continuerà a crearne di nuovi a causa di esso. Per scoprire se .swp
esiste:
- Con il file di destinazione aperto in vim, eseguire
:sw
per ottenere il file di swap corrente.
- Controllare la directory in cui è contenuto il file di swap corrente.
- Poi controllare se la directory contiene un file di swap con il nome del file aperto e ha un'estensione di
.swp
.
Il frammento di cui sopra segue lo stesso processo, ma rimuovere tutti i file di swap.
Spero che questo aiuti.