यहाँ जोड़ने के लिए एक स्निपेट है .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
मौजूद है:
- विम में लक्ष्य फ़ाइल खुली होने के साथ,
:sw
वर्तमान स्वैप फ़ाइल प्राप्त करने के लिए निष्पादित करें।
- निर्देशिका की जाँच करें कि वर्तमान स्वैप फ़ाइल में निहित है।
- फिर जाँच करें कि क्या निर्देशिका में खुली फ़ाइल के नाम के साथ एक स्वैप फ़ाइल है और इसका विस्तार है
.swp
।
ऊपर स्निपेट एक ही प्रक्रिया का अनुसरण करता है, लेकिन सभी स्वैप फ़ाइलों को हटा दें।
उम्मीद है की यह मदद करेगा।