L'une des nouvelles fonctionnalités de Vim 7.3 est l '"annulation persistante", qui permet d'enregistrer le nonotree dans un fichier lors de la sortie d'un tampon.
Malheureusement, je n'ai pas tout à fait réussi à l'activer correctement, ou je dois l'utiliser incorrectement. Voici ce que j'ai essayé jusqu'à présent:
J'ai ajouté ce qui suit à ~/.vimrc
set undofile " Save undos after file closes
set undodir=$HOME/.vim/undo " where to save undo histories
set undolevels=1000 " How many undos
set undoreload=10000 " number of lines to save for undo
Après cela, je devrais pouvoir ouvrir n'importe quel fichier, le modifier, puis l'enregistrer-fermer, et quand je l'ouvrirai à nouveau, je devrais pouvoir annuler/refaire comme si je ne l'avais jamais quitté. Malheureusement, cela ne semble pas être le cas, car aucun undofile n'est jamais écrit.
Remarques:
Je suis sur Win 7 en utilisant Vim 7.3 du projet Vim without cream. L'annulation persistante est intégrée.
$ HOME/.vim/undo existe sur mon système de fichiers
Mettez ceci dans votre .vimrc
pour créer un undodir
s'il n'existe pas et activer l'annulation persistante. Testé sur Windows et Linux.
" Put plugins and dictionaries in this dir (also on Windows)
let vimDir = '$HOME/.vim'
let &runtimepath.=','.vimDir
" Keep undo history across sessions by storing it in a file
if has('persistent_undo')
let myUndoDir = expand(vimDir . '/undodir')
" Create dirs
call system('mkdir ' . vimDir)
call system('mkdir ' . myUndoDir)
let &undodir = myUndoDir
set undofile
endif
J'ai essayé ceci dans mon _gvimrc:
" Persistent undo
try
set undodir=C:\vim\undodir
set undofile
catch
endtry
Il a commencé à fonctionner comme annoncé lorsque j'ai supprimé le support try-catch, ainsi:
" Persistent undo
set undodir=C:\vim\undodir
set undofile
J'ai dû créer le répertoire.
Je suppose que $ HOME ne fonctionne pas comme annoncé.
Sur mon système, :echo $HOME
affiche H: \, mais : e $HOME/
dit: ~/
nom de fichier non valide.
Vous pouvez essayer avec un chemin absolu pour voir s'il guérit
Cela fonctionne maintenant comme prévu: file.txt
ouvert dans un tampon Vim 7.4 sous Windows 7, :setlocal undofile
, puis enregistrez une modification dans le tampon et le undofile .file.txt.un~
est créé à côté parce que :set undodir?
signale que "undodir =." par défaut - c'est-à-dire pas besoin de le spécifier manuellement. Vous pouvez aussi :set undofile
dans une modeline.