A última notícia no vim.org fala sobre o uso do 'undofile' para salvar seu histórico e desfazer alterações mesmo após uma reinicialização:
Um recurso que eu gosto de usar não é conhecido por muitos usuários, como descobri no fim de semana passado. Além de desfazer com quantos níveis você desejar, o Vim também oferece o armazenamento das informações de desfazer em um arquivo. Assim, você pode sair do Vim, reiniciar o computador e ainda desfazer as alterações feitas. Veja a ajuda de 'undofile'. (Bram Moolenaar)
Como posso ativar e usar esse recurso?
persistent-state
undo-redo
Desfazer
fonte
fonte
Respostas:
A versão mais simples é: crie um
~/.vim/undo-dir/
diretório e adicione o seguinte ao.vimrc
:No entanto, não é perfeito, e é melhor ler. Do meu próprio
.vimrc
: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
: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.)
fonte
mkdir()
função suporta a criação de várias estruturas de diretório com a"p"
opção para{path}
parâmetro Portanto, o script acima pode ser um pouco simplificado. Usandocall mkdir($HOME."/.vim/undo-dir", "p", 0700)
funciona para mim no Vim 7.4.160 pelo menos.