为此,我在模式行中设置了一个组织计时器。
(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
该
—
法律列表
redisplay
引擎是能够检查在某些情况下,每个窗口(例如,当模式行自然被刷新,或当它被强制刷新)。当mode-line-format
包含函数时(selected-window)
,随着重新显示访问各个窗口,将返回另一个窗口。可以将该值与预先记录的值进行比较-例如,post-command-hook
可以使用selected-window
将该值与记录的最后一个值进行比较,然后将该值与内部的函数进行比较mode-line-format
。因此,我使用PCH记录/存储selected-window
。
@lawlist我已经签出了您的代码,但是没有发现我的案例的一般用法。如果我改用其他东西代替
—
stardiviner
org-timer
。我该怎么办?我希望有一个更一般的方法。即使它确实启发了我。您能给我更准确的代码示例吗?因为我发现它的设置不同'face
,但是我需要更改显示字符串。
我没有尝试过,但是这个问题看起来与此类似:emacs.stackexchange.com/q/13842/115
—
Kaushal Modi