Aquí hay un recorte para añadir en .vimrc. Borra todos los archivos de intercambio asociados al buffer de archivos actual y restablece la extensión de intercambio. 
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()
Una vez que uno se encuentra en el aprieto, puede ejecutar :DeleteFileSwaps Esto es genial si se combina con los comandos :windo o :tabdo. 
:tabdo DeleteFileSwaps
Más detalles : Un archivo puede tener más de 1 archivo de intercambio. La razón es que el archivo de intercambio, con la extensión .swp, todavía existe y vim seguirá creando nuevos por ello. Para saber si .swp existe: 
- Con el archivo de destino abierto en vim, ejecute :swpara obtener el archivo swap actual.
- Compruebe el directorio en el que se encuentra el archivo swap actual. 
- A continuación, compruebe si el directorio contiene un archivo swap con el nombre del archivo abierto y tiene una extensión de .swp.
El fragmento anterior sigue el mismo proceso, pero elimina todos los archivos swap. 
Espero que esto ayude.