ORG-MODE - สถานะสิ่งที่ต้องทำทริกเกอร์ในวันที่กำหนด?


9

แทนที่จะเช็คไฟล์หรือปฏิทินด้วยตนเองทุกเช้าฉันจะสร้างทริกเกอร์ที่จะกำหนดสถานะของรายการเป็น TODO ในวันที่กำหนดได้อย่างไร

คำตอบ:


5

ไม่ใช่คำตอบโดยตรง แต่คุณสามารถใช้การสนับสนุนขององค์กรเพื่อกำหนดเวลาและกำหนดเวลาแทน

คุณสามารถสร้างรายการสิ่งที่ต้องทำของคุณและกำหนดวันที่กำหนดให้พวกเขาซึ่งในองค์กรหมายถึงวันที่คุณวางแผนที่จะทำงาน - และเมื่อมันควรเริ่มแสดงในวาระการประชุมของคุณ (หากคุณยังไม่ได้ใช้มุมมองวาระการประชุมองค์กรพวกเขามีค่าในการตรวจสอบ!)

ทั้งนี้ขึ้นอยู่กับความต้องการของคุณคุณสามารถกำหนดกำหนด ตัวอย่างเช่น: สร้างสิ่งที่ต้องทำในวันศุกร์กำหนดเวลาสำหรับพุธต่อไปนี้เมื่อคุณต้องการที่จะเห็นมันจริง; และให้กำหนดส่งภายในวันศุกร์ถัดไปซึ่งจะต้องดำเนินการให้เสร็จสิ้น


7

นี่คือสิ่งที่ฉันใช้ทุกเช้าเพื่อค้นหาสิ่งที่ต้องทำทั้งหมดและเปลี่ยนวันที่เป็นวันนี้ถ้ามันค้างเกินกำหนดและเปลี่ยนจากการกระทำครั้งต่อไปเป็นใช้งานได้ถ้าครบกำหนดวันนี้ มันเป็นโซลูชันที่กำหนดเองสำหรับปฏิทินของฉันที่ฉันใช้มาเป็นเวลาหนึ่งปีดังนั้นจึงไม่ต้องสงสัยเลยว่าต้องมีการปรับแต่งเองในส่วนของคุณเอง ความทรงจำของฉันคือมีการเปลี่ยนแปลงorg-deadlineจากorg-modeรุ่น 7 และ 8 และฉันอาจใช้รุ่นก่อนหน้าในการตั้งค่าของฉัน รุ่นปัจจุบันอาจต้องมีการโต้แย้งเพิ่มเติมหรือบางสิ่งบางอย่าง - หากคุณต้องการความช่วยเหลือเพิ่มเติมแจ้งให้เราทราบและฉันจะทำงานในอีกไม่กี่วันข้างหน้าตามเวลาที่อนุญาต

regex ที่ฉันใช้ contemplates ส่วนหัวมีสองดาวและจะอยู่ที่ด้านซ้ายของบัฟเฟอร์ การตั้งค่าของคุณเองอาจจะต้องมีการแก้ไข regex

(defun org-carry-forward-uncompleted-tasks ()
"Carry forward uncompleted tasks."
(interactive)
  (save-excursion
    (goto-char (point-max))
    (while (re-search-backward "^\\*\\* Active" nil t)
      (unless (org-at-heading-p)
        (org-back-to-heading t))
      (let* (
          (element (org-element-at-point))
          (todo-state (org-element-property :todo-keyword element))
          (deadline (org-element-property :deadline element))
          (deadline-time-stamp
            (when deadline
              (time-to-days
                (org-time-string-to-time
                  (org-element-property :raw-value deadline)))))
          (today (time-to-days (current-time))) )
        (when
            (and
              deadline-time-stamp
              (> today deadline-time-stamp) ;; deadline is overdue
              (string= todo-state "Active") ) ;; todo-state equals "X"
          (org-deadline nil ".") )))))

(defun org-make-active-today ()
"Change task from Next Action to Active if deadline is less than or equal to today."
(interactive)
  (save-excursion
    (goto-char (point-max))
    (while (re-search-backward "^\\*\\* Next Action" nil t)
      (unless (org-at-heading-p)
        (org-back-to-heading t))
      (let* (
          (element (org-element-at-point))
          (todo-state (org-element-property :todo-keyword element))
          (deadline (org-element-property :deadline element))
          (deadline-time-stamp
            (when deadline
              (time-to-days
                (org-time-string-to-time
                  (org-element-property :raw-value deadline) ))))
          (today (time-to-days (current-time))) )
        (when
            (and
              deadline-time-stamp
              (>= today deadline-time-stamp) ;; deadline less than or equal to today
              (string= todo-state "Next Action")) ;; todo-state equals "X"
          (org-deadline nil ".")
          (org-todo "Active") )))))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.