La version la plus simple est: créer un ~/.vim/undo-dir/
répertoire et ajouter ce qui suit au .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
Cependant, ce n'est pas parfait, et il vaut mieux continuer à lire. De la mienne .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
Je préfère ne pas encombrer de répertoires aléatoires avec des fichiers d'annulation. J'ai donc défini l' undodir
option qui met tous ces éléments dans un répertoire d'annulation. Cela pose un problème: je suis paresseux et je n’ai pas l’impression de créer ce répertoire sur toutes mes machines (j’utilise un système de contrôle de version pour synchroniser mes .vimrc
tâches sur plusieurs machines). Heureusement, il est assez facile de demander à Vim de vérifier et de créer les répertoires s’ils n’existent pas.
Notez également le 0700
mode sur le répertoire d'annulation (c'est-à-dire des autorisations complètes pour le propriétaire, aucune autorisation pour quiconque). Quels fichiers j'ai édités, quand, etc. devraient rester privés. Et comme il ne s'agit que d'un répertoire auquel je peux accéder, je n'ai pas à craindre que quelqu'un d'autre y mette un lien symbolique, ni son propre fichier d'annulation, ni à quoi que ce soit, car vous auriez à vous soucier de l'utilisation d'un répertoire temporaire du système.
Enfin, n'étant pas un répertoire temporaire du système, il n'est pas soumis à la stratégie de nettoyage du fichier temporaire du système. Souvent, c'est assez court - une semaine ou deux. Mais pour l'empêcher de grandir pour toujours, j'ai mis ce qui suit dans mon crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Donc, après 90 jours sans modification, ils sont supprimés. (Honnêtement, ils ne sont pas si gros que ça, vous pourriez facilement les laisser pour toujours avec le prix du disque. Mais considérez également votre propre vie privée si votre machine est un jour compromise.)