ฉันตั้งค่าตัวบ่งชี้ org-timer ในบรรทัดโหมดด้วยสิ่งนี้
(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")))
)))
ฉันต้องการให้ตัวบ่งชี้ org-timer นี้แสดงในบรรทัดโหมดแอ็คทีฟเท่านั้นแทนที่จะเป็นโหมดโหมดทั้งหมด ทำอย่างไร?
ดู: emacs.stackexchange.com/a/22682/2287
—
ฏหมาย
@lawlist ไม่เข้าใจรหัสของคุณ ไม่ทราบวิธีการสมัครในกรณีของฉัน
—
stardiviner
เอ็น
—
กฎหมาย
redisplay
จิ้นสามารถตรวจสอบแต่ละหน้าต่างได้ในบางกรณี (เช่นเมื่อบรรทัดโหมดถูกรีเฟรชตามธรรมชาติหรือเมื่อถูกบังคับให้รีเฟรช) เมื่อmode-line-format
มีฟังก์ชั่นที่(selected-window)
มีหน้าต่างที่แตกต่างกันจะถูกส่งกลับเป็น redisplay เยี่ยมชมหน้าต่างต่างๆ ค่าที่สามารถนำมาเปรียบเทียบกับค่าที่บันทึกไว้ล่วงหน้า - เช่นที่post-command-hook
สามารถนำมาใช้ในการบันทึกสุดท้ายที่รู้จักกันและความคุ้มค่าที่สามารถมาเทียบกับฟังก์ชั่นภายในที่selected-window
mode-line-format
ดังนั้นผมใช้ PCH ในการบันทึก / selected-window
เก็บ
@lawlist ฉันตรวจสอบรหัสของคุณแล้ว แต่ไม่พบการใช้งานทั่วไปสำหรับกรณีของฉัน ถ้าผมเปลี่ยนสิ่งอื่น ๆ
—
stardiviner
org-timer
แทน ฉันควรทำอย่างไรดี? ฉันหวังว่าวิธีทั่วไปมากขึ้น แม้มันจะเป็นแรงบันดาลใจให้ฉัน คุณช่วยยกตัวอย่างรหัสที่ตรงกว่านี้ให้ฉันได้ไหม เพราะฉันพบว่ามันแตกต่างกัน'face
แต่ฉันต้องเปลี่ยนสตริงการแสดงผล
ฉันไม่ได้ลองสิ่งนี้ แต่คำถามนี้คล้ายกับคำถามนี้: emacs.stackexchange.com/q/13842/115
—
Kaushal Modi