Đây là một đoạn để thêm vào .vimrc. Nó xóa tất cả các tệp hoán đổi được liên kết với bộ đệm tệp hiện tại và đặt lại phần mở rộng trao đổi.
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()
Một khi gặp phải tình huống khó khăn, người ta có thể thực thi :DeleteFileSwaps
Điều này thật tuyệt nếu kết hợp với :windohoặc :tabdocác lệnh.
:tabdo DeleteFileSwaps
Chi tiết khác : Một tệp có thể có nhiều hơn 1 tệp hoán đổi. Lý do bởi vì tệp hoán đổi, với phần mở rộng .swp, vẫn tồn tại và vimsẽ tiếp tục tạo tệp mới vì nó. Để tìm hiểu nếu .swptồn tại:
- Với tệp đích được mở trong vim, hãy thực thi
:swđể lấy tệp hoán đổi hiện tại.
- Kiểm tra thư mục chứa tập tin hoán đổi hiện tại.
- Sau đó kiểm tra xem thư mục có chứa tệp hoán đổi với tên của tệp đang mở hay không và có phần mở rộng là
.swp.
Đoạn mã trên tuân theo quy trình tương tự, nhưng xóa tất cả các tệp hoán đổi.
Hi vọng điêu nay co ich.