8

smerge-mode帮你解决merge confict

 3 years ago
source link: https://www.lujun9972.win/blog/2017/05/26/smerge-mode%E5%B8%AE%E4%BD%A0%E8%A7%A3%E5%86%B3merge-confict/index.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

Sorry your browser does not support the video tag, maybe time to upgrade?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK