5

frame-title-formatフレームタイトルを変更するために変数をカスタマイズしました。ただし、Emacsは必要な場合にのみフレームタイトルを更新します。たとえば、いくつかのカスタム関数を評価した後、Emacsにタイトルを更新(つまり更新)させることはできますか?フレームタイトルの形式は次のとおりです。

(setq frame-title-format "%b  %*  %n")

%nバッファを絞り込んだ直後に(絞り込みの場合は表示)有効にしたい。

4

3 に答える 3

1

Emacs が更新されない理由は以下にあるのではないかと思います。(C-h vフレームタイトルフォーマット)

It is used only on frames for which no explicit name has been set.

初めて設定しましたが、うまくいきます。次にmodify-frame-parameters、別の名前を設定するために使用します。それは動作しません。タグフレームを使用modify-frame-parametersしていますが、うまく機能します。

modify-frame-parameters代わりにタイトルを設定するために使用できます。

(modify-frame-parameters nil
           (list (cons 'name string-name)))

しかし、のようなパラメーターに基づいて名前を設定する方法がわかりませんでしたframe-title-format

于 2012-12-02T11:19:03.607 に答える
1

elisp で再表示を強制する 1 つの方法は、 を使用すること(sit-for 0)です。次のような独自の関数を定義できます。

(defun my-narrow-to-region (start end)
  (interactive "r")
  (narrow-to-region start end)
  (sit-for 0))

:Mac OS Xを使用しているため、これがなくてもフレームタイトルが適切に更新されるため、これで問題が解決するかどうかを確認できません。

更新:この回答の以前のバージョンでは、使用を提案しdefadviceました。これは、望ましくない副作用を引き起こすため、関数のすべての使用に影響を与えるため、良い考えではないことに気付きました。

于 2012-12-02T08:57:55.017 に答える