Org- এজেন্ডা-ফাইলগুলিতে ওয়াইল্ডকার্ড


10

আমি একটি প্রকল্প বেস ফোল্ডার আছে, ~/prjভিতরে যা আমি বহু একক প্রকল্প আছে, 2014_prj1, 2014_prj2, ..., যার ভিতরে আমি অন্যান্যের মধ্যে একটি docফোল্ডার। লেআউটটি দেখতে এমন দেখাচ্ছে:

~/prj
~/prj/2014_prj1
~/prj/2014_prj1/README.org
~/prj/2014_prj1/data
~/prj/2014_prj1/doc
~/prj/2014_prj2
~/prj/2014_prj2/README.org
~/prj/2014_prj2/data
~/prj/2014_prj2/doc

এখন আমি সমস্ত প্রকল্প ডিরেক্টরি ( 2014_prjX) এর org-agenda-filesপাশাপাশি docপ্রকল্প ডিরেক্টরিগুলির সমস্ত উপ-ডিরেক্টরিকে যুক্ত করতে চাই। dataফোল্ডার উচিত নয় অংশ হতে org-agenda-filesকারণ তারা সম্ভবত ফাইলের 10000s থাকতে পারে।

আমি কীভাবে এটি অর্জন করতে পারি? আমি একটি সাধারণ চেষ্টা

(setq org-agenda-files (quote ("~/doc/notes"
                               "~/.emacs.d"
                               "~/prj/*/doc"
                               )
                        )

তবে এটি আমাকে ত্রুটি দেয়

Non-existing agenda file ~/prj/*/doc

উত্তর:


19

file-expand-wildcardsওয়াইল্ডকার্ডের সাথে মেলে সমস্ত ফাইলগুলিকে org-agenda-filesভেরিয়েবলে যুক্ত করতে আপনি ফাংশনটি ব্যবহার করতে পারেন । নীচের মত কিছু

(setq org-agenda-files (append '("~/doc/notes" "~/.emacs.d") (file-expand-wildcards "~/prj/*/doc")))

এমন কোনও হুক আছে যা ফাইলগুলির সেটকে গতিশীলভাবে গণনা করার অনুমতি দেয়? উদাহরণস্বরূপ আমি .orgইমাস শুরু করার পরে যদি আমি একটি নতুন ফাইল যুক্ত করি তবে আমি এটির অংশ হতে চাই org-agenda-files
জন বুদ্ধিমান

1

আমি আরও জেনেরিক পদ্ধতির তৈরি করেছি, যা আপনাকে আরও গভীর বাসা বাঁধার অনুমতি দেয়। উদাহরণস্বরূপ, আমার কাছে নোটগুলির সমৃদ্ধ গাছ রয়েছে এবং কিছু ফোল্ডারে এতে কার্য .org.org ফাইল রয়েছে। এই কোডটি উড়ে সমস্ত সংগ্রহ করবে:

(defun set-org-agenda-files ()
  (require 'f)
  (require 's)

  (setq org-agenda-files
    (f-entries org-directory
               (lambda (filename)
                 (s-ends-with-p "/tasks.org" filename))
               t)))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.