Contesto
Quando emacs rileva che un file è stato modificato al di fuori di un buffer di modifica.
osservato
emacs chiederà:
somefilename è stato modificato nel disco; davvero modificare il buffer? (y, n, r o Ch)
(Per inciso, a volte succede anche quando non ci sono cambiamenti effettivi, ad esempio file remoto su un server con orologio alla deriva, ma la domanda è interessante in tutti i casi.)
desiderato
emacs chiederebbe:
somefilename è stato modificato nel disco; davvero modificare il buffer? (y, n, r, d o Ch)
Premendo d
si mostrerebbe la differenza tra le versioni, ad esempio ediff-current-file
che consente di camminare interattivamente sulle differenze.
Informazioni aggiuntive
Sarebbe simile a quello che fa la gestione dei pacchetti Debian quando rileva che un file di configurazione personalizzato localmente viene aggiornato da una versione più recente del suo pacchetto proprietario. Per un esempio vedere Una nuova versione del file di configurazione / etc / default / grub è disponibile, ma la versione installata attualmente è stata modificata localmente - Unix & Linux Stack Exchange
Cerca prima di chiedere
Di solito trovo la mia strada verso soluzioni (ad esempio emacsclient - da uno script esterno, apri file ed eseguo una semplice espressione sia che emacs sia già in esecuzione - Emacs Stack Exchange ) ma dopo aver cercato su questo non sono riuscito a trovare alcuna soluzione preesistente.
Prenderei in considerazione la possibilità di adattarmi da solo, ma non sono abbastanza esperto negli interni di emacs-lisp ed emacs.
Schizzo di soluzione
- Premendo
C-g
quindi 'Mx ediff-current-file` fa il lavoro, a scapito di alcuni tasti. - L'obiettivo qui sarebbe quello di eseguire
ediff-current-file
su un tasto premuto al prompt di cui sopra.