これでモードラインに組織タイマーインジケーターを設定しました。
(setq-default
mode-line-format
(quote
(
;; org-timer
(:eval
(unless (not org-timer-countdown-timer)
(propertize (let* ((rtime (decode-time
(time-subtract
(timer--time org-timer-countdown-timer)
(current-time))))
(rmins (nth 1 rtime))
(rsecs (nth 0 rtime)))
(format "🕔 %d:%d" rmins rsecs))
'face '(:foreground "cyan" :weight bold)
'help-echo "org-timer")))
)))
この組織タイマーインジケーターを、すべてのモード行ではなく、アクティブモード行のみに表示したい。どうやってするの?
参照: emacs.stackexchange.com/a/22682/2287
—
法律家
@lawlistコードを理解できません。私のケースにどのように申し込むかわからない。
—
stardiviner 2016
redisplay
エンジンは、特定の状況下で、各ウィンドウを確認することができる(例えば、モードラインが自然にリフレッシュされている場合、またはそれがリフレッシュするように強制されている場合)。にmode-line-format
関数が含まれている場合、(selected-window)
再表示がさまざまなウィンドウにアクセスすると、別のウィンドウが返されます。その値は事前に記録された値と比較できます。たとえば、をpost-command-hook
使用して最後に認識された値を記録し、selected-window
その値を後で内の関数と比較できmode-line-format
ます。したがって、PCHを使用してを記録/保存しselected-window
ます。
@lawlist私はあなたのコードをチェックアウトしましたが、私のケースの一般的な使用法は見つかりませんでした。代わりに他のものに変更した場合
—
stardiviner 2016
org-timer
。私は何をすべきか?より一般的な方法を願っています。それでも刺激を受けました。より正確なコード例を教えていただけますか?別に設定されているのを見つけたので'face
、表示文字列を変更する必要があります。
私はこれを試していませんが、この質問はこれに似ています:emacs.stackexchange.com/q/13842/115
—
Kaushal Modi