이맥스 창이 포커스를 잃을 때 모든 파일을 저장하도록 이맥스를 구성 할 수 있습니까? ?파일을 자동으로 저장하는 방법 Emacs에서 포커스를 잃을 때
답변
필자는이 버전을 emacs가 X에서 실행 중일 때만 사용할 수 있습니다 (아마도 우분투와 비슷할 것 같습니다).
(when
(and (featurep 'x) window-system)
(defvar on-blur--saved-window-id 0 "Last known focused window.")
(defvar on-blur--timer nil "Timer refreshing known focused window.")
(defun on-blur--refresh()
"Runs on-blur-hook if emacs has lost focus."
(let* ((active-window (x-window-property
"_NET_ACTIVE_WINDOW" nil "WINDOW" 0 nil t))
(active-window-id (if (numberp active-window)
active-window
(string-to-number
(format "%x00%x"
(car active-window)
(cdr active-window)) 16)))
(emacs-window-id (string-to-number
(frame-parameter nil 'outer-window-id))))
(when (and
(= emacs-window-id on-blur--saved-window-id)
(not (= active-window-id on-blur--saved-window-id)))
(run-hooks 'on-blur-hook))
(setq on-blur--saved-window-id active-window-id)
(run-with-timer 1 nil 'on-blur--refresh)))
(add-hook 'on-blur-hook #'(lambda() (save-some-buffers t)))
(on-blur--refresh))
원하는지 확실하지 않습니다. http://www.dribin.org/dave/blog/archives/2003/09/10/emacs/
편집 :에서
는(defun dld-deselect-frame-hook()
(save-some-buffers 1))
(add-hook 'deselect-frame-hook 'dld-deselect-frame-hook)
단지 당신이 입력 한 모든 n 개의 문자를 저장하는 '자동 저장 간격'사용할 수 있습니다 이맥스
에그래, 나는 모든 훅과 함수를 보았지만 선택이나 집중을 말하는 것을 찾지 못했습니다. – Rockiger
을 작동하는 것 같다. 광산은 100으로 설정되어 있습니다. 따라서 약 2-3 줄의 코드가 필요합니까?
자동 저장 간격은 'C 소스 코드'에 정의 된 변수 입니다. 해당 값 은 100
입니다. 문서 : * 자동 저장 사이의 입력 이벤트 수입니다. 0은 문자 수 을 입력하여 자동 저장을 비활성화하는 것을 의미합니다.
이 변수를 사용자 정의 할 수 있습니다.
이것은 원래 질문에 대한 대답이 아닙니다. 비슷한 것을 이루기위한 방법 일뿐입니다.
내가 아는 바로는 필자가 필자가 말하고자하는 특징은 서기관에게서 온 것이다. html 등을 편집 할 때 매우 편리합니다. 더 이상 C-x C-s를 누를 필요가 없습니다. 창을 변경하고 브라우저를 확인하십시오. – Rockiger
대신 브라우저 애플리케이션으로 전환하는, 브라우저 애플리케이션 (또는[...] 내가 말하는 기능은 서기관입니다. html 등을 편집 할 때 매우 편리합니다. 브라우저를 으로 변경하면 더 이상 C-x C-s를 눌러야합니다. 이 경우
M-x browse-url-of-buffer
C-c C-v
)을로드 이맥스 주문.
(defun my-browse-url-of-buffer()
"Save current buffer and view its content in browser."
(interactive)
(save-buffer)
(browse-url-of-buffer))
그리고 편리한 바인딩에 훅 :이 방법을 사용하면 같이, 최대 브라우저를 제공 한 후 버퍼와 를 저장하는 함수를 직접 작성할 수 있습니다.
또는 버퍼를 저장할 때마다 항상 html-autoview-mode
을 사용하여 파일을 즐겨 찾는 브라우저에 자동으로로드 할 수 있습니다.
이것은 흥미로운 솔루션처럼 들립니다. 나는 이것을 시도 할 것이다. 그러나 나는 아직도 약간 놀랐다. Emacs는 포커스를 바꾸는 것과 같은 것에 반응 할 수 없다. – Rockiger
@Rockiger Emacs가 unfocus 이벤트에 연결하는 방법을 제공하지 않는 것 같습니다. –
Gnu Emacs 24.4에 포커스 후크를 추가했습니다.
이들을 focus-in-hook
및 focus-out-hook
이라고합니다.
당신은 당신의 .emacs 파일에
(defun save-all()
(interactive)
(save-some-buffers t))
(add-hook 'focus-out-hook 'save-all)
을 추가 할 수 있으며 초점의 손실에있는 모든 파일을 저장해야합니다.
하나의 라이너 :'(add-hook 'focus-out-hook (lambda() (interactive) (save-some-buffers t)))' –
문서는 첫 번째 메모가 더 이상 적용되지 않는다는 것을 암시하는 것처럼 보입니다. 맞습니까? 빠른 테스트 후에 창 관리자가 (이맥스 인스턴스가 같은) 이맥스 프레임간에 포커스가 바뀌면 '포커스 아웃 훅'이 실행되지 않는 것 같습니다. 어쩌면'handle-switch-frame'의 추가로 당신이 묘사 한 행동이 바뀌었을까요? – ohspite
@ohspite 당신이 옳은 것처럼 보입니다. 업데이트 주셔서 감사합니다. – bonkydog
- 1. WPF : 창이 포커스를 잃을 때 감지
- 2. WPF 새로 고침 TreeView가 포커스를 잃을 때
- 3. 포커스를 잃을 때 아이폰 키보드를 숨기기
- 4. 라이브 벽지가 포커스를 잃을 때를 확인하는 방법
- 5. 안드로이드 : ImageButton이 포커스를 잃을 때까지 눌렀을 때 그릴 방법?
- 6. Spy ++ 및 창이 포커스를 잃을 때 닫힌 창
- 7. slickgrid가 포커스를 잃었을 때 셀을 저장하는 방법
- 8. 초점을 잃을 때 jeditable을 저장합니까?
- 9. 포커스를 잃을 때 이메일 주소가 이미 데이터베이스에 존재 함
- 10. onChange는 요소가 포커스를 잃을 때만 호출됩니다.
- 11. Emacs에서 헤더 파일을 자동으로 따라갈 수 있습니까?
- 12. 자식 컨트롤이 WinForms에서 포커스를 가져 오거나 잃을 때 어떻게 추적합니까?
- 13. Dojo : 페이지/창이 포커스를 잃을 때 어떤 이벤트가 발생합니까?
- 14. 입력 상자가 jquery에서 포커스를 잃을 때 어떤 이벤트를 사용해야합니까?
- 15. WPF에서 포커스를 잃을 때 캐럿 위치 가져 오기
- 16. Emacs에서 중괄호를 자동으로 닫으시겠습니까?
- 17. 텍스트 상자에서 포커스를 잃을 때 서버 측 메서드를 호출하는 방법, asp.net mvc
- 18. Vim이 포커스를 잃었을 때 자동 저장 파일을 만들 수 있습니까?
- 19. Jtable은 셀이 포커스를 잃을 때마다 데이터를 저장할 수 있습니까?
- 20. Emacs에서 .h의 프로토 타입 함수를 자동으로 삽입
- 21. .emacs를 삭제했을 때 Emacs에서 .emacs를 쓰는 방법
- 22. 응용 프로그램이 포커스를 잃을 때를 감지하는 방법은 무엇입니까?
- 23. Android : 다른 활동이 시작될 때 감지 (또는 내 활동이 포커스를 잃을 때)
- 24. EXE에서 파일을 저장하는 방법
- 25. 파일을 sqlite에 저장하는 방법
- 26. div의 필드에 포커스를 자동으로 설정하려면 어떻게해야합니까?
- 27. TextMate 프로젝트 서랍의 현재 파일을 자동으로 나타냅니다.
- 28. emacs에서 xml 파일을 열 때 sgml-pretty-print를 실행 하시겠습니까?
- 29. emacs에서 파일에 쓰는 방법
- 30. SVN에 이진 파일을 저장하는 방법
우분투에서 광고하는 것처럼 작동하며 이맥스를 워크 플로우의 중심으로 만들 필요가 없습니다. –
이것은 절대적으로 훌륭합니다. 마침내 문제를 해결하고 해결 방법이 없습니다. – Rockiger
필자는 올바른 형식 문자열이 "% x % 04x"이어야한다고 생각합니다. 제 2의 Emacs 프레임에는 사용자의 훅에서 작동하지 않는 ID가 있습니다 (Ubuntu 12.04). (실험에 의해서만 이것에 대한 문서를 찾을 수 없었다.) – volferine