pegar - ¿Usando el deshacer persistente de Vim?
vim linux (4)
Esto ahora funciona como se esperaba: file.txt
abierto en un buffer Vim 7.4 en Windows 7 :setlocal undofile
, luego guarda un cambio en el buffer, y el .file.txt.un~
se crea al costado porque :set undodir?
informa que "undodir =" por defecto, es decir, no es necesario especificarlo manualmente. También puede :set undofile
en una línea de modo.
Una de las nuevas funciones en Vim 7.3 es ''deshacer persistente'', que permite guardar el undotree en un archivo al salir de un búfer.
Desafortunadamente, no he podido habilitarlo correctamente, o debo usarlo incorrectamente. Esto es lo que he intentado hasta ahora:
Agregué lo siguiente a ~ / .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
Después de esto, supuestamente debería poder abrir cualquier archivo, editarlo, luego guardarlo, y cuando lo abra de nuevo debería poder deshacer / rehacer como si nunca me hubiera ido. Desafortunadamente, este no parece ser el caso, ya que no se escribe ningún informe.
Notas:
Estoy en Win 7 usando Vim 7.3 del proyecto Vim without cream. El deshacer persistente está cocido al horno.
$ HOME / .vim / undo existe en mi sistema de archivos
Intenté esto en mi _gvimrc:
" Persistent undo
try
set undodir=C:/vim/undodir
set undofile
catch
endtry
Comenzó a funcionar según lo anunciado cuando eliminé el paréntesis try-catch, así:
" Persistent undo
set undodir=C:/vim/undodir
set undofile
Tuve que crear el directorio.
Pon esto en tu .vimrc
para crear un undodir
si no existe y habilita deshacer persistente. Probado en Windows y 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
Supongo que $ HOME no funciona como se anuncia.
En mi sistema :echo $HOME
muestra H: /, pero : e $HOME/
dice: ~/
invalid filename.
Podrías probar con una ruta absoluta para ver si lo cura