Вот фрагмент для добавления в .vimrc
. Он удаляет все файлы подкачки, связанные с текущим файловым буфером и сбрасывает расширение подкачки.
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()
После столкновения с затруднительным положением, можно выполнить :DeleteFileSwaps
Это замечательно, если объединить с :windo
или :tabdo
команд.
:tabdo DeleteFileSwaps
Детали : Файл может содержать более 1 файла подкачки. Причина в том, что файл подкачки с расширением .swp
все еще существует и vim
будет продолжать создавать новые из-за этого. Чтобы узнать, существует ли .swp
:
- С открытым в vim файлом, выполните
:sw
, чтобы получить текущий файл подкачки.
- Проверьте каталог, в котором находится текущий файл подкачки.
- Затем проверьте, содержит ли каталог файл подкачки с именем открытого файла и имеет ли он расширение
.swp
.
Сниппет, приведенный выше, следует тому же самому процессу, но удалите все файлы подкачки.
Надеюсь, это поможет.