파일이 디스크에서 변경되었을 때 Emacs가 모든 버퍼를 자동으로 새로 고치는 방법?


176

디스크 파일이 emacs 버퍼 (대용량)보다 최신 상태가되도록하는 non-emacs 전역 검색 및 바꾸기 기능이 있습니다. 파일을 다시로드하여 각각을 개별적으로 수행하는 대신 emacs가 디스크에서 모든 버퍼를 새로 고치도록 지시하는 방법이 있습니까?

감사! 디


global-auto-revert-mode는 마법을 수행했습니다.
Jorge Aguilar

답변:


229

(global-auto-revert-mode t)당신의 .emacs에 .


항상 동기화를 유지하려는 경우에 좋습니다. 감사합니다! 나는 (그렇지 않으면 가끔 저장되지 않은 변경, 내 워크 플로우가 현재 작동하는 방식을 잃을 수 있습니다.) 나는 충돌에게 자신을 관리 할 수 있도록 내가 revbuffs를 사용하여 끝낼 수있을 거라 생각
데이브

2
감사합니다! revbuffs와 auto-revert-mode의 조합을 사용하고 있습니다. 자동 복귀 모드는 변경 사항을 덮어 쓰고 싶을 때 효과적입니다.
Natan Yellin

12
@Dave : (전역) 자동 역전 모드는 해당 버퍼가 수정 된 경우 파일을 되 돌리지 않으므로 저장되지 않은 변경 내용이 손실 될 위험이 없습니다.
Lindydancer 2016 년

변수를 .emacs에 설정했지만 일부 코드 xcode를 편집 한 다음 해당 줄에서 파일을 읽으십시오 (이미 열려 있음) .xcode에서 편집하지 않으면 Mx 되돌리기 버퍼가 필요합니다. (mac + emacs 24.3.1)
ericfang

6
자식으로 분기를 전환 할 때 잘 작동합니다. 감사!
저스틴 레이 b

10

Emacs GUI를 사용하는 경우 대안이 있습니다 (Windows 7의 경우 광산은 GNU Emacs 25.1.1입니다).

  1. 메뉴 바에서 "옵션" 을 클릭하십시오
  2. "이맥 사용자 정의"를 선택하십시오
  3. "저장된 옵션"을 선택하십시오
  4. 그런 다음 "global-auto-revert-mode"를 입력 하고 "Search" 버튼을 누르면 검색 필드가 나타납니다.
  5. 클릭 "전환" 버튼을하고 확인하는 것은 반드시 그것을 읽기 "의" 버튼의 오른쪽에
  6. 검색 창 바로 아래에있는 "적용 및 저장" 버튼을 누르 십시오

이미 몇 개의 파일을 연 경우이 효과가 즉시 적용됩니다. 행운을 빕니다!


3

지적 해 주신 @Ashwin에게 감사드립니다 (global-auto-revert-mode t). Emacs는이 변경만으로 디스크에서 파일이 변경된 버퍼를 자동으로 업데이트하지 않음을 발견했습니다. 에서 https://www.gnu.org/software/emacs/manual/html_node/emacs/Reverting.html :

기본적으로 자동 복귀 모드는 파일 알림을 사용하여 작동하므로 파일 시스템의 변경 사항이 OS에서 Emacs에보고됩니다. auto-revert-use-notify 변수를 nil 값으로 사용자 지정하여 파일 알림 사용을 비활성화하면 Emacs는 5 초마다 폴링하여 파일 변경 사항을 확인합니다. 변수 auto-revert-interval을 통해 폴링 간격을 변경할 수 있습니다.

내가 설정 한 후 (auto-revert-use-notify nil), Emacs는 실제로 5 초마다 모든 버퍼를 새로 고쳤습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.