Hier ist ein Ausschnitt zum Hinzufügen .vimrc
. Es löscht alle Auslagerungsdateien, die dem aktuellen Dateipuffer zugeordnet sind, und setzt die Auslagerungserweiterung zurück.
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()
Sobald Begegnung mit dem Dilemma kann man ausführt :DeleteFileSwaps
Das ist großartig, wenn mit kombinieren :windo
oder :tabdo
Befehlen.
:tabdo DeleteFileSwaps
Weitere Details : Eine Datei kann mehr als eine Auslagerungsdatei haben. Der Grund dafür ist, dass die Auslagerungsdatei mit der Erweiterung von .swp
noch vorhanden ist und deshalb vim
ständig neue erstellt. Um herauszufinden, ob es .swp
gibt:
- Wenn die Zieldatei in vim geöffnet ist, führen Sie sie aus
:sw
, um die aktuelle Auslagerungsdatei abzurufen. - Überprüfen Sie das Verzeichnis, in dem sich die aktuelle Auslagerungsdatei befindet.
- Prüfen Sie dann, ob das Verzeichnis eine Auslagerungsdatei mit dem Namen der geöffneten Datei enthält und die Erweiterung hat
.swp
.
Das obige Snippet folgt dem gleichen Vorgang, entfernt jedoch alle Auslagerungsdateien.
Hoffe das hilft.