Es posible que desee probar smerge-mode
simplemente abrir el archivo en conflicto y hacerlo M-xsmerge-mode
RET. Destacará todas las regiones en conflicto. También agrega combinaciones de teclas para resolver fácilmente los conflictos, consulte su documentación C-hfsmerge-mode
RETpara conocerlos.
Prefijo predeterminado
Encuentro el prefijo predeterminado para smerge-mode
C-c^engorroso, así que lo he cambiado a C-cv
(setq smerge-command-prefix "\C-cv")
Combinaciones de teclas importantes
Para mí, los enlaces más importantes son:
smerge-next
obligado a smerge-command-prefixnpasar al siguiente conflicto.
smerge-previous
obligado a smerge-command-prefixppasar al conflicto anterior.
smerge-keep-current
obligado a smerge-command-prefixRETmantener la versión en la que está el cursor.
smerge-keep-mine
obligado a smerge-command-prefixmmantener sus cambios.
smerge-keep-other
obligado a smerge-command-prefixomantener otros cambios.
smerge-ediff
obligado a smerge-command-prefixEcomenzar una sesión de ediff para fusionar los conflictos. Esto es lo mismo que vc-resolve-conflicts
(gracias @phils y @Malabarba por señalar esto).
Habilitar el modo smerge automáticamente
ACTUALIZACIÓN: Lo siguiente solo es relevante en las versiones de Emacs anteriores 25.1
, lo siguiente puede causar problemas en versiones posteriores, consulte https://github.com/magit/magit/issues/3897
Además, puede estar interesado en habilitar automáticamente smerge-mode
cuando visite un archivo / búfer con marcadores de conflicto, puede usar algo como lo siguiente para lograr esto
(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)
Tenga en cuenta que estoy usando buffer-list-update-hook
y no, find-file-hook
ya que la mayoría de las veces tengo conflictos en un búfer que ya está abierto en emacs, en cuyo caso no find-file-hook
sirve de nada.
También verifique otros métodos mencionados en esta respuesta
e
archivos que se muestran como conflictivos. Magit se iniciaríaediff
para hacer la fusión y luego le pedirá que confirme sus cambios, luego podría organizar el archivo combinado.