是否有可能配置Emacs的,所以它保存所有文件时,emacs的窗口失去 聚焦?

有帮助吗?

解决方案

我用这个,如果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-hookfocus-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。组织/戴夫/博客/存档/ 2003/09/10 / emacs的/

编辑:这似乎只在XEmacs的工作

  

[...]我讲的特征是从   文士。这是非常时无限便捷   编辑HTML之类的,你不   必须按C-X C-S了,你   只是改变了窗口,检查您的   浏览器。

在该情况下,代替切换到浏览器应用程序,命令的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,该文件会自动装载到您喜欢的浏览器。

您可以用`自动保存间隔”你键入的每n个字符保存。矿被设置为100,每2-3线所以关于码,也许?

  

自动保存间隔是可变   在`C源代码”中定义。它的价值   为100

     

文档:   *之间的输入事件数自动保存。零表示禁用   自动保存由于字符数   键入。

     

您可以自定义此变量。

这不回答你原来的问题;这只是一个方式来实现类似的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top