여러 Emacs 세션에서 파일 편집

여러 Emacs 세션에서 파일 편집

이맥스는 말한다

마지막으로 버퍼를 읽거나 버퍼에 저장한 이후 디스크 파일이 변경된 버퍼를 수정하려고 합니다.

이 버퍼를 계속 수정 한다고 하면 y파일을 다시 쓰는 사람의 작업이 망가질 수 있습니다. 복원을 원한다고 말하면 r버퍼의 내용이 디스크의 파일에서 플러시됩니다. 라고 말하면 n시작한 변경 사항이 중단됩니다.

일반적으로 최신 버전의 파일을 가져온 다음 다시 변경하려면 을 입력 n한 다음 을 입력 해야 합니다 .M-x revert-buffer

추천 이유

일반적으로 를 입력 n한 다음 을 입력하여 M-x revert-buffer최신 버전의 파일을 가져온 다음 다시 변경해야 합니다.

대신에

복구 시 r버퍼의 내용이 디스크의 파일에서 플러시됩니까?

둘은 정말 다른가요? 내가 보기엔 그것들도 똑같아 보이나요?

답변1

버퍼를 수정하고 싶습니다.디스크 파일이 변경됨마지막으로 읽거나 이 버퍼에 저장한 이후입니다.

이는 저장하기 전에 누군가가 현재 작업 중인 파일을 변경했음을 의미하며 그래픽적으로 다음과 같습니다.

              — Current file on Disk
            /
File-orig —
            \ 
              — Your saved buffer (*)

둘은 다를 수 있습니다. 이를 선택하면 r나중에 사용할 수 있도록 버퍼가 보호됩니다.디스크에서 다시 로드.

              — Current file on Disk —
            /                          \ 
File-orig —                              — Current buffer (*)
            \ 
              — Your saved buffer

따라서 디스크에서 마지막으로 읽은 이후 파일에 적용된 변경 사항을 볼 수 있습니다.

r이제 then 을 실행하면 M-x revert-buffer다음과 같은 일이 발생합니다.

              — File on Disk —
            /                  \ 
File-orig —                      — Buffer read from disk ——— (*) Applied your changes over the one on the disk
            \                                           / 
              — Your saved buffer —————————————————————

바라보다!디스크에 적용된 변경 사항과 변경 사항이 이제 동일한 파일에 병합되어 모두 병합됩니다. Git을 알고 있다면 위 작업은 브랜치 병합과 유사할 것입니다.

선택만 하면 r변경 사항이 손실됩니다. 선택하면 y다른 사람이 변경한 내용이 손실됩니다. 이것이 권장되는 이유입니다.

관련 정보