2012-04-23 5 views
9

Emacsで新しいフレームが作成されるたびに実行するコマンドが必要です。これまではafter-make-frame-functionsを使用していましたが、このフックはmake-frameによって作成されたフレームでのみ呼び出されます。 実際には、emacsclient -cコマンドで新しいウィンドウが作成されるたびに実行されるものが必要です。新しいフレームのEmacsフック

これを達成する方法はありますか?

答えて

9

質問を理解するのが難しいです。 Emacsサーバは、新しいフレームを作成する必要があるときにmake-frameを呼び出します。したがって、after-make-frame-functionsもその場合に動作します。あなたの実際の問題は何ですか?

Emacsサーバに新しいフレームを作成していなくても、あなたの機能を実行したいのですか?その場合は、server-switch-hookafter-make-frame-functionsに関数を追加してみてください。

server-switch-hookは、server.elで定義される変数です。

ドキュメンテーション:Emacs サーバのバッファに切り替えるときにフックが実行されます。

+3

はい、最初の段落は正しいです。私が 'make-frame 'を実行するときに実行したいコマンドは完全に動作しますが、' emacsclient -c'で新しいフレームが作成されたときには機能しませんでした。だから私は、 'emacsclient -c'を実行したときにフックがサーバによって呼び出されなかったと仮定しました。私は今より多くのテストをしましたが、私のコマンドには何か問題があります。無意味な質問には申し訳ありません。 – Malabarba

+3

問題ありません。 [ラバーダックのデバッグ](http://en.wikipedia.org/wiki/Rubber_duck_debugging) –

+2

すごい!プロキシによるメタラバーダックのデバッグのコンセプトを紹介します。自分自身 - SOと全く同じ問題を抱えている人を見つけ、問題が実際には存在しないことを発見します。私はあなたの両方に借りています。 – leoger

関連する問題