When I am resolving merge conflicts with Magit and Smerge, is there a way for me to cycle through all merge conflicts in the project? Currently I can only move through them one file at a time.

I wrote something like this as as utility but it's not great:

(defun jump-to-first-merge-conflict ()
  (execute-kbd-macro (kbd "<return>")))

It would be nice if I could just use smerge in a project context, instead of a file context.

2 Answers 2


Just 7 hours ago to Smerge was added a new command to do exactly that. Now you can use M-x smerge-vc-next-conflict to either jump to the next conflict in focused buffer or to the next conflicted file in the repository that the file belongs to.

Don't forget to use (require 'smerge-mode) for this function to appear.

For those who can't for some reason upgrade Emacs, I can share an analogous function next-conflict I've been using:

(require 'vc)

(defun smerge-next-safe ()
  "Return t on success, nil otherwise"
  (ignore-errors (not (smerge-next))))

(defun next-conflict ()
  (when (not (smerge-next-safe))
    ;; At this point, the caret will only be at a conflict marker if the file did not
    ;; correspond to an opened buffer. Otherwise, we need to jump to a marker explicitly.
    (unless (looking-at "^<<<<<<<")
      (let ((prev-pos (point)))
        (goto-char (point-min))
        (unless (smerge-next-safe)
          (goto-char prev-pos)
          (message "No conflicts found"))))))
  • 1
    thank you, that's all I needed!
    – elmarco
    Commented Aug 1, 2019 at 7:40
  • I am having Symbol’s function definition is void: vc-find-conflicted-file error
    – alper
    Commented Aug 27, 2020 at 19:53
  • @alper try evaluating (require 'vc) to see if that helps. But worth noting that this is odd, because for me it's available even if I run emacs -Q to not load any configs. What Emacs version you have?
    – Hi-Angel
    Commented Aug 28, 2020 at 6:39
  • 1
    I am using Emacs 26.3, seems like (require 'vc) fixed the issue
    – alper
    Commented Aug 28, 2020 at 11:13
  • 1
    Good idea, done
    – Hi-Angel
    Commented Feb 15, 2021 at 18:10

Magit does not support that currently, but I have just added a note to a related feature request.

  • Is this feature still considered to be added into magit? Jumping next conflict in the project
    – alper
    Commented Sep 2, 2021 at 16:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.