Đâ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 :windo
hoặc :tabdo
cá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à vim
sẽ tiếp tục tạo tệp mới vì nó. Để tìm hiểu nếu .swp
tồ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.