La versione più semplice è: crea ~/.vim/undo-dir/
directory e aggiungi quanto segue a .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
Tuttavia, non è impeccabile ed è meglio leggere. Dal mio .vimrc
:
" Let's save undo info!
if !isdirectory($HOME."/.vim")
call mkdir($HOME."/.vim", "", 0770)
endif
if !isdirectory($HOME."/.vim/undo-dir")
call mkdir($HOME."/.vim/undo-dir", "", 0700)
endif
set undodir=~/.vim/undo-dir
set undofile
Preferisco non ingombrare le directory casuali con i file di annullamento. Quindi ho impostato l' undodir
opzione, che li mette tutti in una directory di annullamento. Ciò lascia un problema: sono pigro e non ho voglia di creare quella directory su tutte le mie macchine (uso un sistema di controllo della versione per sincronizzare le mie .vimrc
su un sacco di macchine). Per fortuna, è abbastanza facile avere Vim controllare e creare le directory se non esistono.
Nota anche la 0700
modalità sulla directory di annullamento (che è autorizzazioni complete per il proprietario, nessuna autorizzazione per chiunque altro). Quali file ho modificato, quando, ecc. Dovrebbero rimanere privati. E poiché questa è una directory alla quale solo io posso accedere, non devo preoccuparmi che qualcun altro inserisca un link simbolico, il proprio file di annullamento o qualunque cosa tu debba preoccuparti di usare una directory temporanea di sistema.
Infine, non essendo una directory temporanea di sistema, non è soggetta al criterio di pulizia del tempfile di sistema. Spesso è abbastanza breve, una settimana circa. Ma per evitare che cresca per sempre, ho inserito quanto segue nel mio crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Quindi dopo 90 giorni di non essere modificati, vengono eliminati. (Onestamente, non sono così grandi, potresti facilmente lasciarli per sempre con quanto sia economico il disco. Ma considera anche la tua privacy se la tua macchina viene mai compromessa.)