tutorial pegar linea insertar inicio español editar copiar buscar vim undo undo-redo

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:

  1. Estoy en Win 7 usando Vim 7.3 del proyecto Vim without cream. El deshacer persistente está cocido al horno.

  2. $ 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