Emacsウィンドウのフォーカスが失われたときにすべてのファイルを保存できるように、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))
これが望ましいかどうかわかりません。
(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/
EDIT:唯一のあなたは、あなたが入力し、すべてのn文字を保存するために「自動保存間隔 `使用することができますXEmacsの
ええと、私はすべてのフックやファンクションを見ていましたが、選択やフォーカスというものは見つかりませんでした。 – Rockiger
で動作しているようです。鉱山は100に設定されています。
自動保存間隔は変数 'Cソースコード'に定義された変数 です。その値 は100
です。ドキュメント: *自動保存間の入力イベント数。 「ゼロ」とは、 の文字数のために、 自動保存を無効にすることを意味します。
この変数はカスタマイズできます。
これはあなたの元の質問には答えません。それは似たようなものを達成する単なる方法です。
私が知っているのは、私が話している機能はScribesです。 htmlなどを編集するときはとても便利ですが、C-x C-sを押す必要はありません。ウィンドウを変更してブラウザを確認するだけです。 – Rockiger
[...]私が話している機能は、 からです。 htmlなどの編集時には、 をもう一度押す必要があります。 ブラウザを に変更するだけで、C-X C-sをもう一度押す必要があります。その場合
、代わりにブラウザアプリケーションに切り替える、ブラウザアプリケーション(C-c C-v
又はM-x browse-url-of-buffer
)をロードするためにEmacsを注文します。
(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)
を追加することができ、それが焦点の損失にすべてのファイルを保存する必要があります。
1つのライナー: '(add-hook 'focus-out-hook(lambda()(対話型)(save-some-buffers t)))' –
これは、実験に基づいています。ドキュメントは、あなたの最初のメモがもう適用されないことを暗示しているようです - そうですか?クイックテストの後、ウィンドウマネージャーが(同じemacsインスタンスからの)emacsフレーム間のフォーカスを変更すると、 'focus-out-hook'が実行されないようです。おそらく、 'handle-switch-frame'を追加すると、あなたが記述した振る舞いが変わったでしょうか? – ohspite
@ohspiteあなたが正しいように見えます。更新していただきありがとうございます。 – bonkydog
- 1. フォーカスを失ったVisual Studio 2015ファイルを自動保存する方法はありますか?
- 2. 自動的に保存ボタンを有効にする方法
- 3. emacs org-mode専用の自動保存
- 4. Personal.xlsを自動的に保存する
- 5. Emacs - 5秒ごとにバッファを自動保存する
- 6. メールを自動的にASCIIファイルに保存するには?
- 7. ファイルを保存して自動的にディレクトリを作成する
- 8. モーダルウィンドウに入力を自動的にフォーカスする方法
- 9. スプレッドシートをhtmlファイルに自動的に保存する
- 10. emacs/spacemacsの起動時にシェルバッファを自動的に起動する方法
- 11. ファイルをダウンロードして自動的にフォルダに保存します
- 12. Dockerは自動的にイベントをファイルに保存します
- 13. VSコードはノード保存のようにファイル保存時に自動的にデバッガを再起動します
- 14. emacsでtrampバッファの自動保存を無効にするには?
- 15. Powershellで自動的に保存
- 16. 新鮮なSSRSレポートをハードディスクに毎日自動的に保存する方法
- 17. OpenCVの結果画像を自動的にAndroidに保存する方法
- 18. Grails Hibernate永続セット:自動的に保存しない方法
- 19. PHPでファイルを自動的に移動する方法
- 20. 、フォーカスを失ったときに強制的にボタンに保存する方法は?
- 21. 「開くか保存しますか?」を自動的にクリックする方法
- 22. 自由に変更ファイルを自動的にリロードする方法
- 23. タブを閉じるときにファイルを自動的に保存する
- 24. VBAで「テキストを列にする」と「名前を付けて保存」を自動的に行う方法は?
- 25. APIからのデータを自動的に保存する方法 - Ruby on Rails
- 26. 毎時Pharo画像を自動的に保存する方法は?
- 27. emacsのコメントブロックを自動的に展開
- 28. 動的アンケートを効率的に保存する方法は?
- 29. Vimにファイルを保存した後にシェルコマンドを自動的に実行する方法は?
- 30. 保存前にvimに自動インデントを指示する方法
広告としてUbuntuで動作し、Emacsをワークフローの中心にする必要はありません。 –
これは絶対に素晴らしいです、最後に問題の解決策と回避策はありません。 – Rockiger
私は正しい形式の文字列は "%x%04x"でなければならないと思います。私の場合(Ubuntu 12.04)、セカンダリEmacsフレームにはあなたのフックで動作しないIDがあります。 – volferine