Contexto
Cuando emacs detecta que se modificó un archivo fuera de un búfer de edición.
Observado
emacs preguntará:
algún nombre de archivo cambiado en el disco; ¿Realmente edita el búfer? (y, n, ro Ch)
(Por cierto, a veces sucede incluso cuando no hay un cambio real, por ejemplo, un archivo remoto en un servidor con reloj derivado, pero la pregunta es interesante en todos los casos).
Deseado
emacs preguntaría:
algún nombre de archivo cambiado en el disco; ¿Realmente edita el búfer? (y, n, r, do Ch)
Presionar d
mostraría la diferencia entre versiones, por ejemplo, lo ediff-current-file
que permite recorrer las diferencias de forma interactiva.
Información Adicional
Eso sería similar a lo que hace la administración de paquetes de Debian cuando detecta que un archivo de configuración personalizado localmente se actualiza por una versión más nueva de su paquete propietario. Para ver un ejemplo, consulte Una nueva versión del archivo de configuración / etc / default / grub está disponible, pero la versión instalada actualmente se ha modificado localmente - Unix & Linux Stack Exchange
Busca antes de preguntar
Por lo general, encuentro mi camino hacia las soluciones (por ejemplo, emacsclient: desde un script externo, abra un archivo y ejecute alguna expresión simple si emacs ya se está ejecutando o no, Emacs Stack Exchange ), pero después de buscar en esto no pude encontrar ninguna solución preexistente.
Consideraría ajustar esto yo mismo, pero no soy lo suficientemente competente en emacs-lisp y emacs internos.
Bosquejo de la solución
- Presionando
C-g
entonces 'Mx ediff-current-file` hace el trabajo, a costa de algunas pulsaciones de teclas. - El objetivo aquí sería ejecutar
ediff-current-file
una pulsación de tecla en el indicador anterior.
fuente
Respuestas:
grepping para "realmente editar el búfer" en la fuente emacs encontré la función
ask-user-about-supersession-threat
en el archivouserlock.el
.Parece sencillo agregar una
d
opción para llamarediff-current-file
. Sin embargo, no lo he probado exhaustivamente (ediciones marcadas con;;-
comentarios).fuente