এজেন্ডা তৈরির পরে org- এজেন্ডা-ফাইলগুলি খোলা রাখবেন না


14

অর্গ-মোডে আজকের এজেন্ডা তৈরি করা ( C-c a a) ফাইলগুলিতে খোলে org-agenda-files। আমি চাই না ইমাস এই অতিরিক্ত বাফারগুলি খুলুক।

ইমার্সকে এই বাফারগুলি না খোলার জন্য কি কোনও সহজ উপায় আছে? (বা একই কি, এজেন্ডা বলার আগে তারা যদি না খোলা থাকে তবে তাদের স্বয়ংক্রিয়ভাবে বন্ধ করতে হবে?)।

হালনাগাদ:

এটি @ আইনজীবি দ্বারা সরবরাহিত সমাধানের আরও কমপ্যাক্ট সংস্করণ:

(require 'dash)

(defun my-org-keep-quiet (orig-fun &rest args)
  (let ((buffers-pre (-filter #'get-file-buffer (org-agenda-files))))
    (apply orig-fun args)
    (let* ((buffers-post (-filter #'get-file-buffer (org-agenda-files)))
           (buffers-new  (-difference buffers-post buffers-pre)))
      (mapcar (lambda (file) (kill-buffer (get-file-buffer file))) buffers-new))))

(advice-add 'org-agenda-list :around #'my-org-keep-quiet)
(advice-add 'org-search-view :around #'my-org-keep-quiet)
(advice-add 'org-tags-view   :around #'my-org-keep-quiet)

আফসোস, এটি এখনও নিখুঁত নয়, কারণ এখন এজেন্ডায় কোনও ইভেন্টে ক্লিক করা সম্পর্কিত org ফাইলটি খোলেন না।

উত্তর:


11

আপনি চান org-agenda-exit, এজেন্ডা ভিউতে ডিফল্টরূপে সুবিধামত x এর সাথে আবদ্ধ

`Org-ایجنڈا-প্রস্থান 'এর মতো, তবে এজেন্ডা দ্বারা তৈরি করা কোনও বাফারকে হত্যা করুন। ব্যবহারকারী দ্বারা সরাসরি পরিদর্শন করা org বাফারগুলি স্পর্শ করা যাবে না।

আমি এটি ব্যবহার করে দেখতে পেলাম describe-mode


বুদ্ধি এখানে উত্তর।
ইয়ংফ্রোগ

1
পয়েন্টারটির প্রশংসা করুন describe-mode
ম্যাট

4

org-agenda-filesবাফার (গুলি) উচিত না হওয়া পর্যন্ত অনুসন্ধান ফাংশন শেষ করেছি হত্যা করা হয়। তিন (3) সবচেয়ে সাধারণ অনুসন্ধান একটি জেনারেট করতে ব্যবহৃত ফাংশন *Org Agenda*বাফার আছেন: org-agenda-list; org-search-view; এবং org-tags-vieworg-agenda-filesদুটি পরিবর্তনশীল এবং একটি ফাংশন - দুটি পৃথক, তবে সম্পর্কিত, প্রাণী।

(defvar opened-org-agenda-files nil)

(defun opened-org-agenda-files ()
  (let ((files (org-agenda-files)))
    (setq opened-org-agenda-files nil)
    (mapcar
      (lambda (x)
        (when (get-file-buffer x)
          (push x opened-org-agenda-files)))
      files)))

(defun kill-org-agenda-files ()
  (let ((files (org-agenda-files)))
    (mapcar
      (lambda (x)
        (when
            (and
              (get-file-buffer x)
              (not (member x opened-org-agenda-files)))
          (kill-buffer (get-file-buffer x))))
      files)))

(defadvice org-agenda-list (around opened-org-agenda-list-around activate)
  (opened-org-agenda-files)
  ad-do-it
  (kill-org-agenda-files))

(defadvice org-search-view (around org-search-view-around activate)
  (opened-org-agenda-files)
  ad-do-it
  (kill-org-agenda-files))

(defadvice org-tags-view (around org-tags-view-around activate)
  (opened-org-agenda-files)
  ad-do-it
  (kill-org-agenda-files))

এটা ভালো. একমাত্র সমস্যা হ'ল আমি এজেন্ডা তৈরির আগে খোলা একটি বাফারটিকে হত্যা করতে চাই না। সুতরাং, মনে হচ্ছে সঠিক সমাধানের জন্য "আশেপাশে" পরামর্শ তৈরি করা দরকার।
স্ক্যারামোচে

@ স্ক্যারামোচে - আমার প্রাথমিক পরীক্ষায়, সংশোধিত খসড়াটি আপনি যা খুঁজছেন তা করে দেখা যাচ্ছে - এটি এর aroundসাথে অন্তর্ভুক্ত রয়েছে advice
আইনজীবি

এখন আর একটি সমস্যা আছে: এজেন্ডায় কোনও ইভেন্টে এন্টার টিপানো সংশ্লিষ্ট ফাইলটি খুলবে না। এটি বাস্তবায়নের কোনও দুর্দান্ত উপায় নেই।
স্কারামাউচে

হ্যাঁ, এটি উপলব্ধি করে (এখন আমি এটি সম্পর্কে চিন্তা করি) কারণ *Org-Agenda*বাফারটি কেবল org-agenda-files[একটি ধরণের, এটি আসলে একটি তালিকার মধ্যে ধাক্কা দেয় এবং তারপরে পুনর্গঠিত হয় এবং *Org-Agenda*বাফারে সন্নিবেশ করা হয় ] এর থেকে কেবল একটি অনুলিপি এবং পেস্ট হয় । সম্পাদনা করার সময়, কোনও ব্যবহারকারী সম্পাদনাটি করতে মূলটিতে ফিরে আসে org-agenda-files, যা সম্পাদনা ফাংশন ধরে নিয়েছে ইতিমধ্যে উন্মুক্ত। org-agenda-filesব্যবহার না করার সময় যদি আপনার সত্যিই বন্ধ থাকতে হয় , তবে আপনাকে প্রয়োজনীয় ফাইলটি খোলার জন্য সম্পাদনা ফাংশনগুলি সংশোধন করতে হবে এবং তারপরে এটি শেষ হয়ে গেলে আবার বন্ধ করতে হবে। এছাড়াও অন্যান্য সমস্যা থাকতে পারে
আইনজীবি

1

আপনি এজেন্ডাটি খোলার পরে যেকোন সময় এজেন্ডার বাফারে x টিপে কেবল প্রস্থান করুন। আপনি যদি বেশিরভাগ এজেন্ডায় q ব্যবহার করেন তবে এটি সমস্ত বাফারকে উন্মুক্ত রাখবে।


3
আপনার উত্তরটি মূলত এর একটি সদৃশ user2699যা ফেব্রুয়ারী 19, 2016 এ পোস্ট করা হয়েছিল।
আইনজীবি

-1

আমি নতুন org- মোড কর্মপ্রবাহে স্যুইচ করেছি।

পূর্বে আমি ব্যবহার:

  • NOTE.org এই ফাইলে দ্রুত অ্যাক্সেসের কী বাঁধাই সহ হাতে সম্পাদনা করা ফর্ম নোটগুলির প্রধান সঞ্চয় হিসাবে storage
  • TODO.orgorg-rememberবা জন্য(lambda () (interactive) (org-capture nil "t"))

TODO.orgআমি শুধুমাত্র মাধ্যমে ভ্রমণ C-c a a। তবে NOTE.orgআকারের চেয়ে আরও বড় আকারের অবিস্মরণীয় হয়ে উঠুন প্লেইন পাঠ্যের 1 এমবি।

তাই আমি প্রধান সহজ বিশিষ্ট বিষয় দ্বারা এই ফাইলটি বিভক্ত মত LEARNING.org, PURCHASES.org, emacs-python.org, linux.org, vps.org, ...

সম্ভাব্য নামের তালিকা বজায় রাখার পরিবর্তে আমি ডিরেক্টরিটি নির্দিষ্ট করেছি:

(setq org-agenda-file-regexp "\\`[^.#].*[^_]\\.org\\'"
      org-agenda-files (list org-directory))

আমি এই সেটআপটি নিয়ে খুশি কারণ আমি দ্রুত বাফারে (অর্থবোধক ফাইল নামের মাধ্যমে আইডিও দ্বারা C-s) এবং সীমিত জায়গায় অনুসন্ধান (দ্বারা ) সন্ধানের মাধ্যমে প্রয়োজনীয় বিষয়টি খুঁজে পেতে পারি ।

সকল সময়সূচী মাধ্যমে উপলব্ধ C-c a aজুড়ে .orgফাইল।

তবে এখন আমার কাছে অনেকগুলি অব্যবহৃত অব্যবহৃত .orgফাইল রয়েছে C-c a aযার পরে যখন সেগুলি বাফার সুইচের সময় উপস্থিত হয় তখন আমার খুন করা উচিত।

আমি মনে করি যে বাগ রিপোর্ট জমা দেওয়া উচিত:

http://debbugs.gnu.org/cgi/bugreport.cgi?archive=yes&bug=22734

24.5; do not leave opened org-agenda-files on org-agenda-list, etc.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.