¿Cómo obtengo vim para mantener su historial de deshacer?


36

Si estoy editando dos archivos con vim, cambiar al otro archivo (: bnext,: bprev) parece eliminar el historial de deshacer del archivo abierto, presionando la tecla 'u' informa "Ya está en el cambio más antiguo".

Por ejemplo:

  1. vim testfile1 testfile2
  2. agregar algunas cosas a testfile1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! no se puede deshacer!

¿Hay alguna manera de mantener este historial para buffers no visibles?


¿Debería estar esto en superusuario o stackoverflow en su lugar?
Ressu

@Ressu: buen punto, ¿cómo lo sabemos? Meta pregunta publicada: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr

Dependiendo del resultado de esa meta pregunta, es probable que elimine esto.
Jeremy Kerr

Respuestas:


42

La versión más reciente de vim (7.3) tiene deshacer persistente, por lo que puede hacer un cambio, cerrar vim por completo (incluso apagar y reiniciar), reiniciar vim y deshacer. En su .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/

11
Tenga en cuenta que primero debe crear el directorio, vim no lo hace automáticamente. Los archivos de deshacer se guardan utilizando la ruta del sistema de archivos (al mismo tiempo que se guarda el archivo). Si está dentro /home/peter, la edición .bashrccreará el archivo /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn


1

Puedes usar Viewports .
"vim -o testfile1 testfile2" - abre archivos en una ventana dividida.
": sp filename" - divide y abre "filename".
": nombre de archivo vsp": división vertical y "nombre de archivo" abierto.
"Ctrl + w + flecha" - Cambiar la ventana gráfica.


Prefiero no mantener un búfer visible permanentemente para cada archivo; No es inusual tener> 20 archivos abiertos a la vez.
Jeremy Kerr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.