Kuruluş gündeminde bölücü çizgiler var mı?


12

S : Ajanda orggörünümüme ayırıcı çizgiler ekleyebilir miyim ?

Bir çok şeyim olduğunda gündem arabelleğim biraz meşgul olabilir. Bu meşguliyet benim gündemime bakmama engel oluyor çünkü beni korkutuyor. Görsel olarak daha az göz korkutucu hale getirmenin bir yolunu arıyorum.

İstediğim bir şey, gündem maddeleri arasına bölme çizgileri (örneğin, sadece bir çizgi çizgisi) koyabilmektir:

  • bugün bir son teslim tarihi var
  • son teslim tarihlerini geçmiş (gecikmiş X gün) ve
  • yaklaşan bir son teslim tarihine sahip olmak (X gün içinde).

Ajanda görünümüne bölme çizgileri koymak mümkün müdür? Evetse, bunu nasıl yaparım?


Bir gündem görünümü olmadan bir kuruluş modu gündemi için ham verileri nasıl elde edebilirim başlıklı yarı ilgili bir soruda ? Ben ham verileri elde etme gösteren bir cevap yayınladı: emacs.stackexchange.com/a/12563/2287 Sen dahil ihtiyaçlarınıza göre bu verileri değiştirebilir, ancak bunlarla sınırlı değildir: replace-regexp-in-string(aynı bölücü hatlar ve / veya yeni satır eklemek arzu); aradığınız string-equalsbelirli ölçütlere veya diğer ölçütlere sahip olabilir veya bunlarla eşleşebilir. Kutudan çıkanları tanımak için mevcut metin özelliklerini değerlerle inceleyin ve sonra bunları kullanın.
hukukçu

Elinde taze bir fincan kahve org-modeile, verileri dizenin herhangi bir bölümünü değiştirerek manipüle etmeyi bile içermeyen ham verileri kullanarak daha kolay bir yöntem düşündüm . Yani, sadece metin özelliklerini inceleyin ve ölçütlerinize uyuyorlarsa, mapcaryukarıdaki bağlantı örneğindeki tampon tarafından doldurulduğundan önce veya sonra satır gibi bir şey ekleyin . Bu proje akla taraf olmanın bir süre özel oluşturmak için uygulamaya olabilir org-agendatampon ve örnek yapar değil tasarlamak org-search-viewya org-tags-view- yani sadece org-agenda-list.
hukukçu

Yanıtlar:


2

org-agenda-block-separator

Gündemdeki bloklar arasındaki ayırıcı. Bu bir dize ise, bir satırsonu eklenmiş olarak ayırıcı olarak kullanılır. Bir karakter ise, pencere genişliğini doldurmak için tekrarlanır. Nil ise ayırıcı devre dışı bırakılır. Burada org-agenda-custom-commandsakım ve önceki blok arasındaki ayırıcı adreslenir.


org-agenda-compact-blocks

Nil olmayan, blok gündemini daha kompakt hale getirmek anlamına gelir. Bu, küresel olarak, gündem süresi adı ve hafta numarası veya ayırıcı çizgiler gibi satırlar bırakılarak yapılır.


1
Teşekkürler, ancak bunu gündem görünümünde nasıl kullanacağınıza dair bir örnek verebilir misiniz?
Dan

1

Bir ajanda görünümünde, her biri yalnızca birkaç özel komutu birleştirerek kendi arama özelliğine sahip birden çok blok olabilir:

(setq org-agenda-custom-commands
      '(("D" "Deadlines"
         ((tags-todo "DEADLINE=\"<today>\""
                     ((org-agenda-overriding-header "Due Today"))
                     )
          (tags-todo "DEADLINE<\"<today>\""
                     ((org-agenda-overriding-header "You're Late")))
          (tags-todo "+DEADLINE<\"<+5d>\"+DEADLINE>\"<today>\""
                     ((org-agenda-overriding-header "Better get on it")))
         ))))

Sonuna tüm bloklara uygulanacak seçeneklerin bir listesini de yerleştirebilirsiniz.

Bu dezavantaj, her bloğun ayrı ayrı hesaplanmasıdır, bu nedenle tek bir gündem oluşturmak 3 kat daha uzun sürer


1

Aşağıda, tarafından oluşturulan öğelerin metin özelliklerinin nasıl inceleneceği org-agenda-listve dizenin belirli ölçütlere göre nasıl değiştirileceği ile ilgili bir örnek verilmektedir . Bu örnekte, text özelliğinin ts-datedeğeri elde edilir ve geçerli tarihe göre karşılaştırılır - gecikmişse ekleriz OLD:; eğer güncelse CURRENT:, geleceğini ekliyoruz FUTURE:. Orijinal poster bu örneği özelleştirebilir ve belirli konumlara yeni bir çizgi ve / veya bir ayırıcı çizgi ekleyebilir. Özelleştirme org-agenda-sorting-strategy, vb. İçindeki orijinal poster tarafından seçilen sıralama kriterlerine bağlı olarak değişebilir .

Bu örnekte, işlev ve ile org-agenda-finalize-entriesetiketlenmiş bölümler arasında alta yakın bir yerde değiştirilmiştir .;; BEGIN modification;; END modification

(require 'org-agenda)

(defun org-agenda-finalize-entries (list &optional type)
  "Sort, limit and concatenate the LIST of agenda items.
The optional argument TYPE tells the agenda type."
  (let ((max-effort (cond ((listp org-agenda-max-effort)
         (cdr (assoc type org-agenda-max-effort)))
        (t org-agenda-max-effort)))
  (max-todo (cond ((listp org-agenda-max-todos)
       (cdr (assoc type org-agenda-max-todos)))
      (t org-agenda-max-todos)))
  (max-tags (cond ((listp org-agenda-max-tags)
       (cdr (assoc type org-agenda-max-tags)))
      (t org-agenda-max-tags)))
  (max-entries (cond ((listp org-agenda-max-entries)
          (cdr (assoc type org-agenda-max-entries)))
         (t org-agenda-max-entries))) l)
    (when org-agenda-before-sorting-filter-function
      (setq list
      (delq nil
      (mapcar
       org-agenda-before-sorting-filter-function list))))
    (setq list (mapcar 'org-agenda-highlight-todo list)
    list (mapcar 'identity (sort list 'org-entries-lessp)))
    (when max-effort
      (setq list (org-agenda-limit-entries
      list 'effort-minutes max-effort 'identity)))
    (when max-todo
      (setq list (org-agenda-limit-entries list 'todo-state max-todo)))
    (when max-tags
      (setq list (org-agenda-limit-entries list 'tags max-tags)))
    (when max-entries
      (setq list (org-agenda-limit-entries list 'org-hd-marker max-entries)))
    ;; BEGIN modification
    (setq list
      (mapcar
        (lambda (string)
          (let* (
              (current-date (time-to-days (current-time)))
              (ts-date (get-text-property 0 'ts-date string)) )
            (if ts-date
              (cond
                ((< ts-date current-date)
                  (message "The task dated %s is overdue." ts-date)
                  ;; The new value of `string' is returned/thrown as a result.
                  (replace-regexp-in-string "^" "OLD:  " string))
                ((= ts-date current-date)
                  (message "The task dated %s is due today." ts-date)
                  ;; The new value of `string' is returned/thrown as a result.
                  (replace-regexp-in-string "^" "CURRENT:  " string))
                ((> ts-date current-date)
                  (message "The task dated %s is not due yet." ts-date)
                  ;; The new value of `string' is returned/thrown as a result.
                  (replace-regexp-in-string "^" "FUTURE:  " string)))
              string)))
        list))
    ;; END modification
    (mapconcat 'identity list "\n")))
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.