Contexto
Quando o emacs detecta que um arquivo foi alterado fora de um buffer de edição.
Observado
O emacs perguntará:
nome do arquivo alterado no disco; realmente editar o buffer? (y, n, r ou Ch)
(Aliás, às vezes acontece mesmo quando não há alteração real, por exemplo, arquivo remoto em um servidor com relógio desviado, mas a pergunta é interessante em todos os casos.)
Desejado
o emacs perguntaria:
nome do arquivo alterado no disco; realmente editar o buffer? (y, n, r, d ou Ch)
Pressionar d
mostraria a diferença entre as versões, por exemplo, o ediff-current-file
que permite percorrer as diferenças interativamente.
Informação adicional
Isso seria semelhante ao que o gerenciamento de pacotes Debian faz quando detecta que um arquivo de configuração personalizado localmente é atualizado por uma versão mais recente de seu próprio pacote. Para um exemplo, consulte Uma nova versão do arquivo de configuração / etc / default / grub está disponível, mas a versão instalada atualmente foi modificada localmente - Unix e Linux Stack Exchange
Pesquise antes de perguntar
Normalmente encontro o meu caminho para soluções (por exemplo, emacsclient - a partir de um script externo, abra um arquivo e execute uma expressão simples, independentemente de o emacs já estar em execução ou não - Emacs Stack Exchange ), mas depois de pesquisar sobre isso, não consegui encontrar nenhuma solução pré-existente.
Eu consideraria ajustar isso sozinho, mas não sou proficiente o suficiente no emacs-lisp e no emacs internals.
Esboço da solução
- Pressionar
C-g
então 'Mx ediff-current-file' faz o trabalho, ao custo de algumas teclas. - O objetivo aqui seria executar
ediff-current-file
um pressionamento de tecla no prompt acima.