Oto fragment do dodania w .vimrc
. Usuwa on wszystkie pliki swap, które są powiązane z bieżącym buforem pliku i resetuje rozszerzenie 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()
Po spotkaniu z sytuacją można wykonać :DeleteFileSwaps
To świetnie, jeśli połączy się z komendami :windo
lub :tabdo
.
:tabdo DeleteFileSwaps
Dalsze szczegóły : Plik może mieć więcej niż 1 plik swap. Powodem jest to, że plik swap, z rozszerzeniem .swp
, nadal istnieje i vim
będzie nadal tworzyć nowe z jego powodu. Aby dowiedzieć się, czy .swp
istnieje:
- Przy otwartym pliku docelowym w vimie, wykonaj
:sw
, aby uzyskać bieżący plik swap.
- Sprawdź katalog, w którym znajduje się bieżący plik swap.
- Następnie sprawdź, czy katalog zawiera plik swap z nazwą otwartego pliku i rozszerzeniem
.swp
.
Powyższy fragment postępuje tak samo, ale usuń wszystkie pliki swap.
Mam nadzieję, że to pomoże.