Si alguna vez ha sido guardado por un archivo de copia de seguridad de Emacs, probablemente desee más de ellos, no menos de ellos. Es molesto que vayan en el mismo directorio que el archivo que está editando, pero eso es fácil de cambiar. Puede hacer que todos los archivos de respaldo vayan a un directorio poniendo algo como lo siguiente en su
.emacs
.
(setq backup-directory-alist `(("." . "~/.saves")))
Hay una serie de detalles arcanos asociados con cómo Emacs podría crear sus archivos de respaldo. ¿Debería cambiar el nombre del original y escribir el búfer editado? ¿Qué pasa si el original está vinculado? En general, la apuesta más segura pero lenta es hacer siempre copias de seguridad copiando.
(setq backup-by-copying t)
Si eso es demasiado lento por alguna razón, también podrías echarle un vistazo
backup-by-copying-when-linked
.
Dado que sus copias de seguridad están en su lugar ahora, es posible que desee más, en lugar de menos. Eche un vistazo a la documentación de Emacs para estas variables (con C-h v
).
(setq delete-old-versions t
kept-new-versions 6
kept-old-versions 2
version-control t)
Finalmente, si absolutamente no debe tener archivos de respaldo:
(setq make-backup-files nil)
Sin embargo, me enferma pensar en ello.
Los archivos de copia de seguridad / guardado automático de Emacs pueden ser muy útiles. Pero estas características son confusas.
Archivos de respaldo
Los archivos de respaldo tienen tildes (
~
o~9~
) al final y se escribirán en el directorio de inicio del usuario. Cuandomake-backup-files
no es nulo, Emacs crea automáticamente una copia de seguridad del archivo original la primera vez que el archivo se guarda desde un búfer. Si está editando un nuevo archivo, Emacs creará una copia de seguridad la segunda vez que guarde el archivo.No importa cuántas veces guarde el archivo, la copia de seguridad permanece sin cambios. Si cierra el búfer y luego vuelve a visitar el archivo, o la próxima vez que inicie una nueva sesión de Emacs, se creará un nuevo archivo de respaldo. La nueva copia de seguridad refleja el contenido del archivo después de volver a abrir, o al comienzo de las sesiones de edición. Pero una copia de seguridad existente nunca se vuelve a tocar. Por lo tanto, me resulta útil crear copias de seguridad numeradas (consulte la configuración a continuación).
Para crear copias de seguridad explícitamente use
save-buffer
(C-x C-s
) con argumentos de prefijo.diff-backup
ydired-diff-backup
compara un archivo con su copia de seguridad o viceversa. Pero no hay función para restaurar archivos de copia de seguridad. Por ejemplo, en Windows, para restaurar un archivo de copia de seguridadtiene que ser copiado manualmente como
Guardar automáticamente archivos
Los archivos de guardado automático usan hashmarks (
#
) y se escribirán localmente dentro del directorio del proyecto (junto con los archivos reales). La razón es que los archivos de guardado automático son solo archivos temporales que Emacs crea hasta que un archivo se guarda nuevamente (como con la obediencia apresurada).C-x C-s
(save-buffer
) para guardar un archivo, Emacs guarda automáticamente los archivos, según el recuento de las pulsaciones de teclas (auto-save-interval
) o cuando deja de escribir (auto-save-timeout
).Cuando el usuario guarda el archivo, se elimina la versión guardada automáticamente. Pero cuando el usuario sale del archivo sin guardarlo, Emacs o la sesión X se bloquea, los archivos guardados automáticamente todavía existen.
Use
revert-buffer
orecover-file
para restaurar archivos de guardado automático. Tenga en cuenta que Emacs registra sesiones interrumpidas para su recuperación posterior en archivos llamados ~ / .emacs.d / auto-save-list . Larecover-session
función usará esta información.El método preferido para recuperarse de un archivo guardado automáticamente es
M-x revert-buffer RET
. Emacs preguntará "Buffer ha sido guardado automáticamente recientemente. ¿Revertir desde el archivo de guardado automático?" o "¿Revertir el búfer del archivo FILENAME?". En el caso de este último, no hay archivo de guardado automático. Por ejemplo, porque ha guardado antes de escribir otrasauto-save-intervall
pulsaciones de teclas, en cuyo caso Emacs había eliminado el archivo de guardado automático.El guardado automático está deshabilitado actualmente de forma predeterminada porque puede ralentizar la edición cuando está conectado a una máquina lenta y porque muchos archivos contienen datos confidenciales.
Configuración
Aquí hay una configuración que en mi humilde opinión funciona mejor:
Informacion delicada
Otro problema es que no desea que Emacs distribuya copias de archivos con datos confidenciales. Use este modo por archivo. Como este es un modo menor, para mis propósitos lo renombré
sensitive-minor-mode
.Para habilitarlo para todos los archivos .vcf y .gpg , en sus .emacs use algo como:
Alternativamente, para proteger solo algunos archivos, como algunos archivos .txt , use una línea como
en el archivo.
fuente
diff
, con el archivo real. Luego dispara Emacs y descubre por ti mismo lo querevert-buffer
hace. Esto dará sus frutos rápidamente en casos de emergencia.La respuesta aceptada es buena, pero se puede mejorar enormemente haciendo una copia de seguridad adicional en cada guardado y copia de seguridad de archivos versionados .
Primero, la configuración básica como se describe en la respuesta aceptada :
A continuación, también haga una copia de seguridad de los archivos versionados, que Emacs no hace de manera predeterminada (no se compromete en cada guardado, ¿verdad?):
Finalmente, haga una copia de seguridad en cada guardado, no solo en el primero. Hacemos dos tipos de copias de seguridad:
copias de seguridad por sesión: una vez en el primer guardado del búfer en cada sesión de Emacs. Estos simulan el comportamiento de respaldo predeterminado de Emac.
copias de seguridad por guardado: una vez en cada guardado. Emacs no hace esto de manera predeterminada, pero es muy útil si deja Emacs funcionando durante mucho tiempo.
Las copias de seguridad van en diferentes lugares y Emacs crea los directorios de copia de seguridad automáticamente si no existen:
Me interesé mucho en este tema después de escribir en
$<
lugar de$@
en miMakefile
, aproximadamente tres horas después de mi compromiso anterior: PLo anterior se basa en una página Wiki de Emacs que edité en gran medida .
fuente
setq
s en la parte superior de mi respuesta? Lo anterior funciona para mí en Emacs 24.5.1.Otra forma de configurar las opciones de respaldo es a través de la interfaz Personalizar. Entrar:
Y luego en el
Customize group:
indicador ingresebackup
.Si se desplaza hasta la parte inferior del búfer, verá Copia de seguridad de la lista de directorios . Haga clic en Mostrar valor y configure la primera entrada de la lista de la siguiente manera:
Alternativamente, puede desactivar las copias de seguridad de mi configuración Hacer archivos de copia de seguridad en
off
.Si no desea que Emacs edite automáticamente su
.emacs
archivo, querrá configurar un archivo de personalización .fuente
customize-group
2 años. ¡Gracias!Puede deshabilitarlos por completo
fuente