문제

EMACS 창이 초점을 잃을 때 모든 파일을 저장할 수 있도록 EMAC를 구성 할 수 있습니까?

도움이 되었습니까?

해결책

나는 이것을 사용합니다. EMACS가 X에서 실행중인 경우에만 작동합니다 (아마도 Ubuntu와 같은 것 같습니다).

(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))

다른 팁

GNU EMACS 24.4에 초점 고리를 추가했습니다.

그들 불리는 focus-in-hook 그리고 focus-out-hook.

추가 할 수 있습니다

(defun save-all ()
  (interactive)
  (save-some-buffers t))

(add-hook 'focus-out-hook 'save-all)

.emacs 파일에 초점을 잃어 버릴 때 모든 파일을 저장해야합니다.

이것이 당신이 원하는 것인지 확실하지 않습니다.

(defun dld-deselect-frame-hook ()
  (save-some-buffers 1))

(add-hook 'deselect-frame-hook 'dld-deselect-frame-hook)

에서: http://www.dribin.org/dave/blog/archives/2003/09/10/emacs/

편집 : Xemacs에서만 작동하는 것 같습니다

…] 내가 말하는 기능은 Scribes의 것입니다. HTML 등을 편집 할 때는 매우 확실합니다. 더 이상 CX CS를 누르지 않아도됩니다. 창을 변경하고 브라우저를 확인합니다.

이 경우 브라우저 응용 프로그램으로 전환하는 대신 EMACS를 주문하여 브라우저 응용 프로그램을로드합니다 (C-c C-v 또는 M-x browse-url-of-buffer). 이 방법을 사용하면 버퍼를 저장하는 자신의 기능을 작성하고 그 다음에 다음과 같이 브라우저를 연결합니다.

(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 버퍼를 저장할 때마다 파일을 좋아하는 브라우저에 자동으로로드하십시오.

`auto-save-interval '을 사용하여 입력 한 모든 n 문자를 저장할 수 있습니다. 광산은 100으로 설정되어 있습니다. 그래서 약 2-3 줄의 코드 라인마다 아마도?

Auto-Save InterVal은`c 소스 코드 '에 정의 된 변수입니다. 그 가치는 100입니다

문서화 : *자동 구조 간의 입력 이벤트 수. 0은 타이핑 된 문자 수로 인해 자동 절약을 비활성화한다는 것을 의미합니다.

이 변수를 사용자 정의 할 수 있습니다.

이것은 당신의 원래 질문에 대답하지 않습니다. 그것은 비슷한 것을 달성하는 방법 일뿐입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top