ランチャー...アイコンを右クリックして終了を選択し、ファイル終了を選択すると、これが発生したいと思います。emacsが終了する直前にこのコマンドを実行したい....ランチャーアイコンを右クリックして終了を選択すると、このコマンド「wg-update-workgroup」が実行され、Emacsが終了します..フックを追加する方法がわかりません....初期化ファイルに入れた正確なコードを誰かが教えてくれたら、とても感謝しています....関数をキーにバインドしようとしましたが、奇妙なコマンド p エラーが発生しました。
2 に答える
2
コードは次のとおりです。
(add-hook 'kill-emacs-hook
(lambda ()
(wg-update-workgroup)))
UPD
wg-update-workgroup
引数が必要なため、コードが機能していないようです。パッケージに慣れたくないので、自分でテストする必要があります。
解決策 1:
(add-hook 'kill-emacs-hook
(lambda ()
(wg-update-all-workgroups)))
解決策 2:
(add-hook 'kill-emacs-hook
(lambda ()
(call-interactively 'wg-update-workgroup)))
UPD:上記のすべてを無視してください:)
私はこれがあなたが望むものだと確信しています:
(setq wg-query-for-save-on-emacs-exit nil)
(push (lambda()(or (ignore-errors
(wg-update-all-workgroups-and-save)) t))
kill-emacs-query-functions)
最初のステートメントは、終了時にワークグループを保存することに関する非常に厄介な y/n クエリを削除します。2 番目のステートメントは、終了時に無条件にすべてを保存します。
私の完全な構成をリストするだけです:
(require 'workgroups)
(workgroups-mode 1)
(setq wg-query-for-save-on-emacs-exit nil)
(wg-load "~/wg")
(push (lambda()(or (ignore-errors
(wg-update-all-workgroups-and-save)) t))
kill-emacs-query-functions)
于 2013-09-07T12:33:46.210 に答える
1
あなたが当惑するのは正しいです。問題はこれです: Emacs が終了し始めるとき、workgroups.el は「kill-emacs-hook. あなたが欲しいのはこれです:
(add-hook 'kill-emacs-query-functions 'wg-update-all-workgroups)
フック変数は次のようになります。
(wg-update-all-workgroups wg-emacs-exit-query)
私のように、特定のワークグループ ファイルに複数のワークグループが保存されている場合は、'wg-update-workgroup ではなく 'wg-update-all-workgroups を使用することをお勧めします。
IMO workgroups.el は、最高の Emacs セッション マネージャーです。新しい誰かがそれを引き継いだ。さらに多くの機能を備えた新しいバージョンが間もなく登場することに興奮しています。
于 2013-09-08T01:41:08.433 に答える