Recentemente, o Magit ganhou suporte para algo assim, mas o recurso ainda é um pouco complicado e precisa ser ativado explicitamente.
Um recurso semelhante existe há muito tempo - quando você move de uma confirmação para outra em um buffer de log e outra janela no mesmo quadro é o buffer de revisão do repositório, esse buffer é atualizado para mostrar a confirmação em vez de qualquer confirmação. estava mostrando anteriormente.
Até muito recentemente, o buffer de revisão era criado quando você passou de um commit para outro. Eu mudei esse comportamento e agora o buffer de revisão é sempre atualizado . Se nenhuma janela no mesmo quadro já exibir esse buffer, a movimentação no log não fará mais com que o buffer seja exibido em alguma nova janela ou em uma janela existente que anteriormente exibia outro buffer.
Então agora você precisa pressionar SPCuma vez para exibir o buffer de revisão. Somente então ele começará a ser atualizado quando você mover o buffer de log.
Se você não deseja que o buffer de revisão seja atualizado, faça o seguinte:
(remove-hook 'magit-section-movement-hook
'magit-log-maybe-update-revision-buffer)
Se, por outro lado, você também deseja que o buffer de revisão seja atualizado ao se mover no buffer de status, use o seguinte:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-revision-buffer)
Agora é possível que um buffer de blob seja atualizado automaticamente de maneira semelhante. Primeiro adicione isto:
(add-hook 'magit-section-movement-hook
'magit-log-maybe-update-blob-buffer)
E talvez também:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-blob-buffer)
Em seguida, dentro de um buffer de log (ou status), pressione RETpara exibir ou atualizar o buffer de revisão e também para alternar para esse buffer. Vá para o arquivo do seu interesse e pressione RETnovamente. Agora você está em um buffer de "visita a blob", que é semelhante a um buffer de visita a arquivos, exceto que ele não visita o arquivo na árvore de trabalho, mas o arquivo como estava em alguma confirmação.
Volte para o buffer de log (ou status) e vá para outra confirmação. O buffer de blob está sendo atualizado.
Observe que exibir outro blob na verdade não reutiliza o buffer de blob existente. Em vez disso, cria um novo buffer que visita esse blob e exibe esse buffer na janela que exibia anteriormente o outro buffer de blob. Esse outro buffer não está sendo excluído, o que infelizmente significa que muitos buffers podem se acumular em um curto período de tempo. Qual seria uma dessas arestas, como mencionei anteriormente. Pressionar qum buffer de blob o exclui, portanto, você pode limpar indo para a janela que foi usada para exibir os vários buffers de blob e continuar pressionando qaté que todos os buffers tenham sido excluídos.
Além disso, é possível navegar para o blob seguinte ou anterior a partir de um buffer de blob usando pe n. Presumo que, na maioria dos casos, você comece com um blob recente e depois volte para os blobs mais antigos usando p. Se você fizer isso e quiser seguir na outra direção, recomendo que você use qpara eliminar o buffer atual e, assim, passar para o buffer anterior, ou seja, o próximo blob.
Observe também que você não precisa primeiro visitar uma revisão para poder visitar um blob. Você também pode usar M-x magit-find-file RET <revision> RET <file> RET
diretamente, mas acho isso menos conveniente.