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-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进行合并
更贴心的是,当合并完最后冲突后,smerge-mode居然会自动退出!
下面是一个很好的smerge-mode的视频展示: https://emacsgifs.github.io/public/videos/758861381898637313.mp4