.vimrc
นี่คือตัวอย่างที่จะเพิ่มใน จะลบไฟล์ swap ทั้งหมดที่เกี่ยวข้องกับบัฟเฟอร์ไฟล์ปัจจุบันและรีเซ็ตส่วนขยาย 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()
เมื่อพบกับสถานการณ์หนึ่งสามารถดำเนินการ:DeleteFileSwaps
นี้เป็นที่ดีถ้ารวมกับ:windo
หรือ:tabdo
คำสั่ง
:tabdo DeleteFileSwaps
รายละเอียดเพิ่มเติม : ไฟล์สามารถมีไฟล์สลับได้มากกว่า 1 ไฟล์ เหตุผลเนื่องจากไฟล์ swap ที่มีนามสกุล.swp
ยังคงมีอยู่และvim
จะสร้างไฟล์ใหม่เพราะมัน หากต้องการทราบว่า.swp
มีอยู่จริง:
- เมื่อไฟล์เป้าหมายเปิดเป็นกลุ่มให้เรียกใช้
:sw
เพื่อรับไฟล์สลับปัจจุบัน
- ตรวจสอบไดเรกทอรีที่มีไฟล์ swap ปัจจุบันอยู่
- จากนั้นตรวจสอบว่าไดเรกทอรีมีไฟล์สลับที่มีชื่อไฟล์เปิดอยู่และมีนามสกุล
.swp
อยู่หรือไม่
ตัวอย่างด้านบนเป็นไปตามกระบวนการเดียวกัน แต่ลบไฟล์ swap ทั้งหมด
หวังว่านี่จะช่วยได้