smerge-mode
충돌 한 파일을 열어서 시도해 볼 수도 있습니다 M-xsmerge-mode
RET. 충돌하는 모든 영역을 강조 표시합니다. 또한 키 바인딩을 추가하여 충돌을 쉽게 해결하고 문서 C-hfsmerge-mode
RET를 참조하여 충돌 을 파악 하십시오 .
기본 접두사
smerge-mode
C-c^성가신 기본 접두사를 찾아서 다음과 같이 변경했습니다. C-cv
(setq smerge-command-prefix "\C-cv")
중요한 키 바인딩
나에게 가장 중요한 바인딩은 다음과 같습니다.
smerge-next
smerge-command-prefixn다음 분쟁으로 넘어갈 수밖에 없었습니다.
smerge-previous
smerge-command-prefixp이전의 분쟁으로 넘어갈 수밖에 없었습니다.
smerge-keep-current
smerge-command-prefixRET커서가있는 버전을 유지하기 위해 바인딩됩니다 .
smerge-keep-mine
바인딩 smerge-command-prefixm변경 사항을 유지.
smerge-keep-other
바인딩 smerge-command-prefixo다른 변경 사항을 유지 할 수 있습니다.
smerge-ediff
바인딩 smerge-command-prefixE충돌을 병합하기는 Ediff 세션을 시작합니다. 이것은 vc-resolve-conflicts
(@phils와 @Malabarba에게 이것을 지적 해 주셔서 감사합니다)와 같습니다.
스머지 모드 자동 활성화
업데이트 : 다음은 이전 Emacs 버전에만 해당되며 25.1
, 이후 버전에서는 문제가 발생할 수 있습니다. https://github.com/magit/magit/issues/3897
또한 smerge-mode
충돌 마커가있는 파일 / 버퍼를 방문 할 때 자동으로 활성화하는 데 관심이있을 수 있습니다. 이를 달성하기 위해 다음과 같은 것을 사용할 수 있습니다
(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)
나는 대부분의 시간을 사용 buffer-list-update-hook
하고 find-file-hook
있기 때문에 이미 emacs에 열려있는 버퍼에서 충돌을 겪는 find-file-hook
것은 아닙니다. 이 경우 도움이되지 않습니다.
이 답변에 언급 된 다른 방법도 확인하십시오.
e
충돌로 표시된 파일 을 누를 수 있습니다. Magit은ediff
병합을 시작 하고 나중에 변경 사항을 확인하라는 메시지를 표시 한 다음 병합 된 파일을 준비 할 수 있습니다.