4

たとえば、別のemacsウィンドウ(通常はgnuservに接続)で電子メールクライアントを実行します。

emacs -f wl

(電子メールクライアントはWanderlustであり、おそらくそれほど重要ではありません)。

emacsに私の好みを思い出させることは可能ですか?

  • ウィンドウレイアウト、
  • メインウィンドウの寸法、
  • フォント、色など、

が呼び出されたときにのみこれらを設定するにwlは?大まかに言えば、電子メールクライアントの背景を黒にしたいが、それ以外の場合は白にしたい場合はどうすればよいですか?

デフォルトのウィンドウレイアウトはロードされるたびに手動で調整する必要があるため、ウィンドウレイアウトを維持することに特に興味がありますwl

4

2 に答える 2

3

新しいフレームのデフォルトの外観と動作を指定できる変数がありdefault-frame-alistます(フレームは、個別のEmacsウィンドウと呼ばれるものです)。すべてのフレームの設定を上書きしますが、グローバル値をマスクして自分で設定するように関数にアドバイスすることができます。このようなもの:

(defadvice wl (around wl-frame-settings activate)
  (let ((default-frame-alist (append
                              '((width . 82) (height . 36)
                                (cursor-color . "#ffa200")
                                (tool-bar-lines . 0)
                                ;; ...
                                )
                              default-frame-alist)))
    ad-do-it))

TJが指摘したように、このソリューションには、呼び出されるのが遅すぎるという欠点がある可能性があります。TJのwlwrapper方が良い方法かもしれません。

于 2009-06-05T11:57:09.787 に答える
3

TörökGáborの回答に基づいて、ウィンドウ/フレーム構成を保存および復元するために、いくつかのパッケージのいずれかを使用できます。多くはここにリストされています。さまざまなウィンドウレイアウトパッケージにはすべて癖があるため、好きなものを見つける必要があります(既存のパッケージについて嫌いなものを見つけて自分で作成するパッケージは非常にたくさんあります)。

フォントと色に関しては、フレームごとにカスタマイズできるものもあります。フレームパラメータについては、情報ページを参照してください。

関数にフックする方法に関しては、必要に応じてアドバイス'wlを使用できます(私はそれを使用するのが大好きです)が、それ自体をカスタマイズするか、フレーム/ウィンドウを実行するラッパーを作成する方がはるかに簡単かもしれません構成をロードしてからを呼び出します。次に、呼び出しを次のように変更する必要があります。'wl'wl

emacs -f wlwrapper

emacsclientの構成方法(または、古いEmacsenの場合はgnuclient)が、TGのソリューションが機能しない原因である可能性があります。私はおそらくこのソリューションを使用し、既存のフレームを再利用するよう'wlwrapperにカスタマイズしてから、内部で変更してから呼び出します。これにより、パラメータを設定したにフレームを作成できます。emacsclient'wlwrapper'default-frame-parameters'wl

このようなテストされていないもの:

(defun wlwrapper ()
  "wrapper for 'wl which sets up window/frame configurations"
   (let ((default-frame-alist (append
                               '((width . 82) (height . 36)
                                 (cursor-color . "#ffa200")
                                 (tool-bar-lines . 0)
                                 ;; ...
                                 )
                               default-frame-alist)))
     ;; if 'wl doesn't create a frame
     (select-frame (make-frame))
     (wl)
     ;; now use which ever window saving package you want
     ))
于 2009-06-05T13:42:40.447 に答える