A versão mais simples é: crie um ~/.vim/undo-dir/
diretório e adicione o seguinte ao .vimrc
:
set undodir=~/.vim/undo-dir
set undofile
No entanto, não é perfeito, e é melhor ler. Do meu próprio .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
Prefiro não desordenar diretórios aleatórios com arquivos de desfazer. Então, defino a undodir
opção, que coloca todos eles em um diretório de desfazer. Isso deixa um problema: sou preguiçoso e não sinto vontade de criar esse diretório em todas as minhas máquinas (eu uso um sistema de controle de versão para sincronizar minhas em .vimrc
várias máquinas). Felizmente, é fácil o Vim procurar e criar os diretórios, se eles não existirem.
Observe também o 0700
modo no diretório desfazer (que é permissões totais para o proprietário, sem permissões para mais ninguém). Quais arquivos que eu editei, quando, etc. devem permanecer privados. E como este é apenas um diretório que eu posso acessar, não preciso me preocupar com alguém colocando um link simbólico lá, ou com seu próprio arquivo de desfazer, ou com o que precisar, pois você precisaria se preocupar em usar um diretório temporário do sistema.
Por fim, não sendo um diretório temporário do sistema, não está sujeito à política de limpeza do arquivo temporário do sistema. Muitas vezes, isso é bastante curto - uma semana ou mais. Mas para evitar que cresça para sempre, coloquei o seguinte no meu crontab
:
# m h dom mon dow command
43 00 * * 3 find /home/anthony/.vim/undo-dir -type f -mtime +90 -delete
Então, depois de 90 dias sem serem modificados, eles são excluídos. (Honestamente, eles não são tão grandes assim, você pode facilmente deixá-los para sempre com o quão barato é o disco. Mas considere também sua própria privacidade se sua máquina estiver comprometida.)