Org এজেন্ডায় ডিভাইডার লাইন?


12

প্রশ্ন : আমি কি আমার orgএজেন্ডা দৃষ্টিতে ডিভাইডার লাইন রাখতে পারি ?

আমার অনেক কিছুই করার কারণে আমার এজেন্ডা বাফারটি কিছুটা ব্যস্ত হয়ে উঠতে পারে। এই ব্যস্ততার আমাকে আমার এজেন্ডাটির দিকে নজর দেওয়া এড়াতে বাধ্য করার প্রতিক্রিয়াশীল প্রভাব রয়েছে কারণ এটি আমাকে প্রকাশ করে। আমি এটিকে দৃষ্টিশক্তি কম কম করার উপায় খুঁজছি।

একটি জিনিস যা আমি চাই তা হ'ল এজেন্ডা আইটেমগুলির মধ্যে ডিভাইডার লাইনগুলি (উদাহরণস্বরূপ, ড্যাশগুলির একটি লাইন) স্থাপন করতে সক্ষম হবেন যা:

  • আজ একটি সময়সীমা আছে,
  • তাদের শেষ সময়সীমা পেরিয়ে গেছে (অতিরিক্ত সময় এক্সের দিন), এবং
  • একটি আসন্ন সময়সীমা আছে (এক্স দিনের মধ্যে বাকি)

এজেন্ডা দৃষ্টিতে ডিভাইডার লাইন স্থাপন করা কি সম্ভব? যদি হ্যাঁ, আমি কিভাবে এটি করব?


অর্ধ-সম্পর্কিত প্রশ্নে কোন এজেন্ডা ভিউ ছাড়াই একটি org- মোড এজেন্ডার জন্য কাঁচা ডেটা পাবেন কীভাবে? , আমি কীভাবে কাঁচা ডেটা পাওয়ার তা প্রমাণ করে একটি উত্তর পোস্ট করেছি: emacs.stackexchange.com/a/12563/2287 আপনি এই তথ্যটি আপনার প্রয়োজন অনুসারে সংশোধন করতে পারেন, তবে সীমাবদ্ধ নয়: replace-regexp-in-string(ডিভাইডার লাইন এবং / অথবা নিউলাইন হিসাবে যুক্ত করুন) তোমার আকাঙ্খা); আপনার কাছে একটি string-equalsনির্দিষ্ট মানদণ্ড বা অন্য কোনও মানদণ্ডের সাথে মিল থাকতে পারে। বাক্সের বাইরে কী অন্তর্ভুক্ত রয়েছে তার সাথে নিজেকে পরিচিত করতে মান সহ বিদ্যমান পাঠ্য-বৈশিষ্ট্যগুলি পরীক্ষা করুন এবং তারপরে সেগুলি ব্যবহার করুন।
আইনজীবি

হাতে একটি তাজা কাপ কফি নিয়ে, আমি org-modeকাঁচা ডেটা ব্যবহার করে এমন একটি সহজ পদ্ধতির কথা ভেবেছিলাম যা স্ট্রিংয়ের কোনও অংশ প্রতিস্থাপনের সাথে ডেটা ম্যানিপুলেট করার সাথে জড়িত না। উদাহরণস্বরূপ, কেবলমাত্র পাঠ্য বৈশিষ্ট্যগুলি পরীক্ষা করুন এবং সেগুলি যদি আপনার মানদণ্ডের সাথে মেলে তবে mapcarউপরের লিঙ্কটির উদাহরণে বাফারটি পপুলিং করা হওয়ার আগে বা পরে একটি লাইনের মতো কিছু সন্নিবেশ করান । এই প্রকল্পটি কাস্টম org-agendaবাফার তৈরি করতে বাস্তবায়নের জন্য কিছুটা সময় অনুভব করতে পারে , এবং উদাহরণটি বিবেচনা করে নাorg-search-view বা org-tags-view- যেমন, কেবল org-agenda-list
আইনজীবি

উত্তর:


2

org-agenda-block-separator

কর্মসূচীতে ব্লকগুলির মধ্যে বিভাজক। এটি যদি স্ট্রিং হয় তবে এটি একটি নতুন লাইন যুক্ত করে বিভাজক হিসাবে ব্যবহৃত হবে। যদি এটি একটি অক্ষর হয় তবে উইন্ডোটির প্রস্থটি পূরণ করা পুনরাবৃত্তি হবে। নিল হলে বিভাজক অক্ষম থাকে। ইন org-agenda-custom-commandsএই ঠিকানাগুলি বর্তমান এবং পূর্ববর্তী ব্লক মধ্যে বিভাজক।


org-agenda-compact-blocks

নন-নিল মানে ব্লক এজেন্ডা আরও কমপ্যাক্ট করুন। এজেন্ডা স্প্যানের নাম এবং সপ্তাহের নম্বর বা বিভাজক রেখার মতো লাইনগুলি রেখে বিশ্বব্যাপী এটি করা হয়।


1
ধন্যবাদ, তবে আপনি কী একটি এজেন্ডা দৃষ্টিতে এটি ব্যবহার করবেন তার উদাহরণ দিতে পারেন?
ড্যান

1

একটি এজেন্ডা ভিউতে আপনার একাধিক ব্লক থাকতে পারে, প্রতিটি নিজস্ব অনুসন্ধান সহ কেবলমাত্র কয়েকটি কাস্টম কমান্ড যুক্ত করে:

(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")))
         ))))

আপনি বিকল্পগুলির একটি তালিকাও শেষে রাখতে পারেন যা সমস্ত ব্লকের ক্ষেত্রে প্রযোজ্য।

এই অসুবিধাটি হ'ল প্রতিটি ব্লক পৃথকভাবে গণনা করা হয় তাই একক এজেন্ডা হিসাবে উত্পন্ন করতে 3 বার সময় লাগে


1

নিম্নলিখিতটি কীভাবে তৈরি হচ্ছে আইটেমগুলির পাঠ্য-বৈশিষ্ট্যগুলি পরীক্ষা করতে org-agenda-listএবং নির্দিষ্ট মানদণ্ডের উপর ভিত্তি করে স্ট্রিংটি সংশোধন করে তার উদাহরণ is এই উদাহরণে, পাঠ্য সম্পত্তির ts-dateমান পাওয়া যায় এবং বর্তমান তারিখের তুলনায় তুলনা করা হয় - যদি এটি বিলম্বিত হয় তবে আমরা যুক্ত করি OLD:; এটি যদি বর্তমান হয় তবে আমরা যুক্ত করি CURRENT:, যদি এর ভবিষ্যত হয় তবে আমরা যুক্ত করি FUTURE:। মূল পোস্টারটি এই উদাহরণটি কাস্টমাইজ করতে পারে নির্বাচিত স্থানে একটি নতুন লাইন এবং / অথবা একটি বিভাজক লাইন যুক্ত করে। org-agenda-sorting-strategyইত্যাদিতে মূল পোস্টার দ্বারা বাছাই করা মানদণ্ডের উপর নির্ভর করে কাস্টমাইজেশন পরিবর্তিত হতে পারে etc.

এই উদাহরণে, ফাংশন org-agenda-finalize-entriesবিভাগে লেবেল মধ্যে নীচে কাছাকাছি পরিবর্তন করা হয়েছে ;; 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")))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.