¿Cómo se deshabilitó el control de Emacs del archivo de almacenamiento intermedio fuera del editor?Emacs: cómo desactivar la comprobación de 'archivo cambiado en el disco'?
Respuesta
Emacs realmente está tratando de ayudarlo aquí. Lea la página de información en Protection against Simultaneous Editing.
Pero, si todavía quiere evitar que el mensaje/solicitud, puede redefinir la función que está haciendo la moción:
(defun ask-user-about-supersession-threat (fn)
"blatantly ignore files that changed on disk"
)
(defun ask-user-about-lock (file opponent)
"always grab lock"
t)
La segunda función no es para cuando dos personas están utilizando Emacs para editar el mismo archivo, y proporcionaría un mensaje similar (pero no el que parecías consultar en la pregunta).
Aconsejaría que no anule las dos rutinas, pero está ahí si lo desea.
En caso de que
global-auto-revert-mode
esté activado, podría deshabilitarlo. Agregue esto a su .emacs:
(global-auto-revert-mode -1)
Se puede saber si el modo está activado observando la variable del mismo nombre:
C-h v global-auto-revert-mode RET
Si el valor es t
, a continuación, el modo está activado de lo contrario, está apagado.
Tuve molestia con esto porque cada vez que cambiaba de ramas en git, emacs pensaba que todos mis archivos habían cambiado.
Revbuffs lo ayuda a lidiar con los síntomas de esto. Le permite hacer que todos sus búferes sean recargados.
También puedes probar (global-auto-revert-mode)
que automáticamente revertirá tus archivos a lo que está en el disco.
Tengo lo siguiente en mi .emacs
. Hace que Emacs solo pregunte por los archivos realmente cambiados. Si un archivo permanece igual bytewise, solo se actualiza su marca de tiempo, como sucede a menudo cuando se cambian las sucursales en VCS, Emacs ignora este "cambio".
;; Ignore modification-time-only changes in files, i.e. ones that
;; don't really change the contents. This happens often with
;; switching between different VC buffers.
(defun update-buffer-modtime-if-byte-identical()
(let* ((size (buffer-size))
(byte-size (position-bytes size))
(filename buffer-file-name))
(when (and byte-size (<= size 1000000))
(let* ((attributes (file-attributes filename))
(file-size (nth 7 attributes)))
(when (and file-size
(= file-size byte-size)
(string= (buffer-substring-no-properties 1 (1+ size))
(with-temp-buffer
(insert-file-contents filename)
(buffer-string))))
(set-visited-file-modtime (nth 5 attributes))
t)))))
(defun verify-visited-file-modtime--ignore-byte-identical (original &optional buffer)
(or (funcall original buffer)
(with-current-buffer buffer
(update-buffer-modtime-if-byte-identical))))
(advice-add 'verify-visited-file-modtime :around #'verify-visited-file-modtime--ignore-byte-identical)
(defun ask-user-about-supersession-threat--ignore-byte-identical (original &rest arguments)
(unless (update-buffer-modtime-if-byte-identical)
(apply original arguments)))
(advice-add 'ask-user-about-supersession-threat :around #'ask-user-about-supersession-threat--ignore-byte-identical)
+1 Esto es muy similar a lo que estaba pensando, pero solo funcionará correctamente si el buffer no tiene cambios no guardados. Pensaba que mantendría una matriz asociada de SHA1 de búfer (o MD5 o lo que sea lo suficientemente económico como para calcular sobre la marcha y lo suficientemente robusto contra choques) y actualizarlo cada vez que se visita un nuevo archivo o cada vez que guardo un archivo. Entonces, si el archivo con la marca de tiempo actualizada tiene el mismo hash, la alerta es innecesaria. – tripleee
Sí, es tal como lo describió y tiene ese estuche no manipulado. Pero es suficiente para mí, porque tengo la costumbre de guardar buffers con frecuencia. – doublep
@doublep eres mi héroe! – EoghanM
En mi caso yo quería:
(setq revert-without-query '(".*"))
Documentación para revert-without-query
:
Specify which files should be reverted without query.
The value is a list of regular expressions.
If the file name matches one of these regular expressions,
then ‘revert-buffer’ reverts the file without querying
if the file has changed on disk and you have not edited the buffer.
- 1. Lógica en Desfragmantación de disco y comprobación de disco
- 2. ¿Cómo hacer que Emacs actualice automáticamente todos los búferes cuando los archivos han cambiado en el disco?
- 3. ¿Cómo puedo desactivar el modo de autocompletar en emacs?
- 4. Desactivar CLS comprobación de cumplimiento en C#
- 5. ¿Cómo puedo desactivar "Comprobación de HTML" en NetBeans?
- 6. Recarga de un archivo python cambiado en el shell python de emacs
- 7. ¿Cómo consulto la información del archivo "Tamaño en el disco"?
- 8. Desactivar "La comprobación de errores HTML para este archivo está deshabilitada" pista en Netbeans
- 9. ¿Cómo puedo desactivar la comprobación de compatibilidad de modelos en Entity Framework 4.3?
- 10. ¿Cómo obtener información sobre el búfer/archivo actual en emacs?
- 11. Desactivar Carbon Emacs scroll beep
- 12. cómo desactivar la comprobación de compatibilidad en excel mientras se automatiza a través de C#
- 13. Extensión de Chrome: cómo guardar un archivo en el disco
- 14. ¿Cómo puedo crear un archivo numpy .npy en el disco?
- 15. ¿Cómo minimizar el archivo de configuración .emacs?
- 16. No ha cambiado nada, pero el eclipse por ejemplo marca el archivo como cambiado
- 17. ¿Dónde está el archivo .emacs en Windows GNU emacs
- 18. guardar un archivo (de corriente) en el disco usando C#
- 19. desactivar el archivo de configuración INI -Werror
- 20. ¿Cómo desactivar el comportamiento de actualización automática (comprobación incorrecta) de NHibernate?
- 21. cómo escribir en un archivo en emacs
- 22. Manipular un archivo en la memoria con PHP (sin crear un archivo temporal en el disco)
- 23. Cómo revertir un archivo en Visual Studio 2010 (vuelva a cargar el archivo desde el disco)
- 24. Obtener el tamaño del archivo en el disco
- 25. ¿Cómo puedo desactivar la comprobación de sintaxis de Javascript en NetBeans 7.0 (versión de Linux para PHP)?
- 26. ¿Cómo pruebo la unidad para guardar el archivo en el disco?
- 27. ¿Cómo puedo desactivar la comprobación SHA1 de Ivy de los archivos .pom descargados?
- 28. Archivo de salida PHP en el disco al navegador
- 29. Emacs: ¿cómo ir a la definición de la función en el archivo .el?
- 30. Comprobación de un archivo vacío en C++
El aparece mucho cuando se ejecuta emacs en VMWare y archivos Editting en/mnt/HGF (enlaces para alojar carpetas de máquina). El reloj de VMWare no se sincroniza con el host. En ocasiones, incluso puede ver el resultado de que las llamadas del sistema de tiempo salten hacia atrás en el tiempo. Entonces, ... ¿es posible deshabilitar la verificación solo cuando se editan archivos en un directorio específico? (Por ejemplo,/mnt/hgfs?) – user48956
Esta solución también es necesaria cuando se usa Emacs en Windows a través de Parallels en OSX para modificar archivos en el OSX nativo/host. Además de modificar 'ask-user-about-supresión-amenaza', también modifiqué' basic-save-buffer' con un 'defalias' y una nueva función que omite/quita:' (o (verify-visited-file- modtime (current-buffer)) (no (file-exists-p buffer-file-name)) (yes-or-no-p (formato "% s ha cambiado desde que se visitó o se guardó. ¿Guardar de todos modos?" (file-name -nondirectory buffer-file-name))) (error de usuario "Guardar no confirmado")) '. – lawlist
Emacs realmente debería verificar que el contenido del archivo haya cambiado y no solo las marcas de tiempo. Esto sucede en todos mis buffers cada vez que cambio git branches temporalmente y lo cambio de dirección (o git stash save/pop). * Edit * acaba de descubrir la respuesta de @doublep – EoghanM