Potresti provare smerge-modesemplicemente aprire il file in conflitto e farlo M-xsmerge-modeRET. Evidenzierà tutte le regioni in conflitto. Aggiunge inoltre le combinazioni di tasti per risolvere facilmente i conflitti, consultare la sua documentazione C-hfsmerge-modeRETper conoscerli.
Prefisso predefinito
Trovo il prefisso predefinito per smerge-mode C-c^ingombrante, quindi l'ho cambiato in C-cv
(setq smerge-command-prefix "\C-cv")
Tasti importanti
Per me gli attacchi più importanti sono:
smerge-nextdestinato a smerge-command-prefixnpassare al prossimo conflitto.
smerge-previousdestinato a smerge-command-prefixppassare al conflitto precedente.
smerge-keep-currentdestinato a smerge-command-prefixRETmantenere la versione su cui si trova il cursore.
smerge-keep-minedestinato a smerge-command-prefixmmantenere le modifiche.
smerge-keep-otherdestinato a smerge-command-prefixomantenere altre modifiche.
smerge-ediffdestinato a smerge-command-prefixEiniziare una sessione ediff per unire i conflitti. Questo è lo stesso di vc-resolve-conflicts(grazie a @phils e @Malabarba per averlo segnalato).
Abilitazione automatica della modalità smerge
AGGIORNAMENTO: Quanto segue è rilevante solo nelle versioni precedenti di Emacs 25.1, quanto segue può causare problemi nelle versioni successive, consultare https://github.com/magit/magit/issues/3897
Inoltre potresti essere interessato ad abilitare automaticamente smerge-modequando visiti un file / buffer con marcatori di conflitto che puoi usare qualcosa come il seguente per raggiungere questo obiettivo
(defun my-enable-smerge-maybe ()
(when (and buffer-file-name (vc-backend buffer-file-name))
(save-excursion
(goto-char (point-min))
(when (re-search-forward "^<<<<<<< " nil t)
(smerge-mode +1)))))
(add-hook 'buffer-list-update-hook #'my-enable-smerge-maybe)
Nota che sto usando buffer-list-update-hooke non find-file-hookperché la maggior parte delle volte ottengo conflitti in un buffer che è già aperto in emacs, nel qual caso non find-file-hookè di aiuto.
Controlla anche gli altri metodi menzionati in questa risposta
esui file mostrati come in conflitto. Magit si avviavaediffper eseguire l'unione e in seguito ti chiedeva di confermare le modifiche, quindi puoi mettere in scena il file unito.