crash-recovery – ¿Cómo puedo evitar que Vim deje demasiados archivos (como intercambiar, respaldar, deshacer)?

Pregunta:

De forma predeterminada, vim deja archivos de intercambio en el directorio de mi proyecto y, en caso de bloqueos, deja archivos de respaldo.

¿Puedo prevenir esto? ¿O necesito actualizar el archivo .VCSignore todos mis proyectos?

Respuesta:

Archivos de respaldo

De forma predeterminada, Vim no deja archivos de respaldo. Son simplemente archivos transitorios que existen mientras Vim guarda el búfer en el disco. Como se describe en :help backup-table este comportamiento puede ser controlado por las opciones 'backup' y 'writebackup' :

'backup' 'writebackup'  action  ~
   off       off    no backup made
   off       on     backup current file, deleted afterwards (default)
   on        off    delete old backup, backup current file
   on        on     delete old backup, backup current file

Intercambiar archivos

En cuanto a los archivos de intercambio, puede resultar útil recopilarlos en un directorio dedicado. Esto se puede hacer con la opción 'directory' . Por ejemplo

:set directory^=$HOME/.vim/tmp//

agregará $HOME/.vim/tmp al encabezado de la lista de directorios que Vim intentará usar al crear un archivo de intercambio. El // final hace que Vim codifique el nombre completo de la ruta al archivo para que no haya colisiones con archivos con nombres similares de diferentes directorios.

Advertencia : esto efectivamente deshabilita la capacidad de Vim de darse cuenta si varios usuarios están tratando de editar el mismo archivo, ya que los archivos de intercambio se almacenan en diferentes ubicaciones.

El fragmento a continuación (adaptado de vimrc de tpope ) también deshabilitará el archivo de intercambio para un búfer cuando no se modifique, de esa manera si Vim / su computadora falla cuando tiene un montón de archivos abiertos, los archivos de intercambio que quedan solo serán para archivos modificados.

autocmd CursorHold,BufWritePost,BufReadPost,BufLeave *
  \ if isdirectory(expand("<amatch>:h")) | let &swapfile = &modified | endif

Advertencia : dado que el archivo de intercambio solo existe cuando se modifica el búfer, esto tiene un efecto similar al de la configuración de 'directory' . Si el búfer no está modificado, otro Vim puede comenzar a editarlo sin previo aviso. Si el segundo Vim guarda antes de que el primero haga más cambios, no se notarán hasta que el usuario intente guardar o algo haga que Vim verifique si el archivo está modificado.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım