Voici un extrait à ajouter dans .vimrc
. Il supprime tous les fichiers d'échange qui sont associés au tampon du fichier courant et réinitialise l'extension d'échange.
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()
Une fois que l'on rencontre la situation difficile, on peut exécuter :DeleteFileSwaps
C'est très bien si on combine avec les commandes :windo
ou :tabdo
.
:tabdo DeleteFileSwaps
Plus de détails : Un fichier peut avoir plus d'un fichier d'échange. La raison en est que le fichier d'échange, avec l'extension .swp
, existe toujours et que vim
continuera à en créer de nouveaux à cause de cela. Pour savoir si .swp
existe :
- Avec le fichier cible ouvert dans vim, exécutez
:sw
pour obtenir le fichier d'échange actuel.
- Vérifiez le répertoire dans lequel se trouve le fichier d'échange actuel.
- Ensuite, vérifiez si le répertoire contient un fichier d'échange portant le nom du fichier ouvert et ayant l'extension
.swp
.
L'extrait ci-dessus suit le même processus, mais supprimez tous les fichiers d'échange.
J'espère que cela vous aidera.