Nota: non hai detto quale sistema operativo stai utilizzando. Di seguito funziona con una shell Unix ma se si esegue Windows, è possibile scaricare un Cygwin bare-bones o qualche altra shell.
Facevo lo stesso come te, corri :e
per riaprire lo stesso file per ottenere l'opzione per eliminare il file di recupero. Dopo un arresto anomalo o un riavvio imprevisto del computer, pulisco tutti i file di recupero Vim rimanenti eseguendo vim -r
i file di scambio e lasciando che il ripristino proceda.
Quando i file non sono cambiati
Se i file non sono stati modificati, desidero eliminare immediatamente il file di ripristino. Sarebbe bello se Vim potesse farlo automaticamente, ma sfortunatamente no.
Quando i file sono cambiati
Se i file sono cambiati, eseguo il DiffOrig
comando per confrontare le differenze tra la versione originale e quella recuperata. Se sono soddisfatto delle modifiche dal file di ripristino, esco salvando i file con il :x
comando. In caso contrario, scarto le modifiche recuperate con :q!
. Se il file di ripristino non è associato a un file salvato, ad esempio, di .swp
solito utilizzo il :w filename
per salvare il buffer recuperato in un file con un nome file.
Assistente DiffOrig
Ho aggiunto il comando DiffOrig al mio in .vimrc
modo che sia sempre disponibile.
command DiffOrig vert new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
Script di shell
Eseguo il seguente script nella mia shell per trovare tutti i file di scambio nella struttura di directory corrente. Ogni file di scambio viene quindi utilizzato per aprire Vim in "modalità di ripristino" e viene quindi eliminato dopo la chiusura di Vim.
find . -type f -name '.*.sw?' -exec vim -r "{}" -c DiffOrig \; -exec rm -iv "{}" \;
L' rm -i
opzione richiede la conferma ( y
) per eliminare il file. Se sei più sicuro e vuoi accelerare il processo, questo può essere omesso.
:e #
trucco è, sebbene non ideale, ma ancora più utile della risposta corrente di seguito. :-)