暗无天日

=============>DarkSun的个人博客

smerge-mode帮你解决merge confict

目录

配置

将下面代码加入配置文件中可以让Emacs在打开merge confict文件时自动开启smerge-mode

(add-hook 'find-file-hook (lambda ()
                            (save-excursion
                              (goto-char (point-min))
                              (when (re-search-forward "^<<<<<<< " nil t)
                                (smerge-mode 1))))
          t)

使用

开启smerge-mode后,文件冲突的地方会被高亮起来.

smerge-mode.png

通过执行 smerge-next (C-c ^ n) 和 smerge-prev (C-c ^ p) 可以很方便的跳到下一个/上一个冲突的地方.

此外,你还可以执行

  • smerge-keep-mine 保留自己的变更
  • smerge-keep-other 保留对方的变更
  • smerge-keep-base 还原原始版本
  • smerge-keep-all 即保留自己的变更也保留对方的变更.

若你觉得ediff-merge的哪种双面板对比的方式更适合你,那么也可以通过执行 smerge-ediff (C-c ^ E) 来调用ediff-merge进行合并 ediff-merge.png

更贴心的是,当合并完最后冲突后,smerge-mode居然会自动退出!

下面是一个很好的smerge-mode的视频展示: https://emacsgifs.github.io/public/videos/758861381898637313.mp4