追加するスニペットを次に示し.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
詳細:ファイルには、複数のスワップファイルを含めることができます。その理由は.swp、拡張子がのスワップファイルがまだ存在し、そのvimために新しいファイルを作成し続けるためです。.swp存在するかどうかを確認するには:
- ターゲットファイルをvimで開いた状態で実行
:swして、現在のスワップファイルを取得します。
- 現在のスワップファイルが含まれているディレクトリを確認します。
- 次に、ディレクトリに、開いているファイルの名前のスワップファイルが含まれ、拡張子がであるかどうかを確認します
.swp。
上記のスニペットは同じプロセスに従いますが、すべてのスワップファイルを削除します。
お役に立てれば。