एक TODO सूची और एक पाठ रूपरेखा के बीच org-blank-before-new-entry भेद करें?


10

हम में से कई की तरह, मैं दो अलग-अलग चीजों के लिए org-mode का उपयोग करता हूं:

  1. TODO सूची प्रबंधक के रूप में
  2. एक पाठ आउटलाइनर के रूप में

मैं अपनी रिक्त लाइनों को संदर्भ के आधार पर अलग तरह से काम करना चाहूंगा।

  1. TODO सूची: कोई खाली रेखा नहीं
  2. पाठ की रूपरेखा: स्वचालित रूप से 1 रिक्त पंक्ति सम्मिलित करें जब गैर-शीर्षक पाठ एक शीर्षक से पहले हो

दूसरे शब्दों में, जब मैं एक TODO सूची कर रहा होता हूं, जब मेरे पास एक पंक्ति में कई शीर्षक होते हैं, तो मैं नहीं चाहता कि उनके बीच आवारा रेखा टूटे।

TODO सूची मोड, कोई रेखा नहीं टूटती:

* Organize Party [33%]
 ** TODO Call people [1/2]
 *** TODO Peter
 *** DONE Sarah
 ** TODO Buy food
 ** DONE Talk to neighbor 

हालाँकि, जब मैं पाठ लिख रहा हूँ, मुझे दृश्य व्हाट्सएप / पढ़ने में आसानी के लिए लाइन ब्रेक चाहिए।

शीर्षक मोड, शीर्ष पंक्ति से पहले खाली पंक्ति:

* Heading 
This is a document that has a heading, and a body. The body will consist of two paragraphs with sub-headings.

* Body  
This is an introduction to the body. The body has two sub-headings, each of which have their own paragraph.  

** The First Paragraph  
This is the first of two paragraphs. 

** The Second Paragraph
This is the second of two paragraphs.  

मैंने पहले ही ऑर्ग-कोरे-से-न्यू-एंट्री को ऑटो में सेट कर दिया है:

 ((heading . auto)
 (plain-list-item . auto))

लेकिन मुझे लगता है कि इस क्षेत्र में अन्य रिक्त लाइनों का पता लगाने से ओआरजी-खाली-पहले-नई-प्रविष्टि काम करती है। मैं चाहता हूं कि यह पता लगाया जाए कि पाठ की पूर्ववर्ती रेखा एक शीर्षक या गैर-शीर्षक है।

जब मैं TODO सूची में केवल शीर्षकों से युक्त होता हूं, तो मैं org-blank-before-new-प्रविष्टि को कैसे संशोधित कर सकता हूं, org-meta-returnएक पंक्ति विराम नहीं जोड़ता है? लेकिन पाठ के एक ब्लॉक के बाद, यह करता है?


क्या आपने इसके लिए कोई फिक्स पाया है? मैं कुछ समय पहले emacs subreddit पर एक ही सवाल पूछने की कोशिश की, लेकिन कोई फायदा नहीं हुआ।
मेजरब्रिग्स

हाँ, एक कस्टम फ़ंक्शन के माध्यम से। मैं पोस्ट करूँगा।
गरमागरम

जवाबों:


5

यह एक कस्टम फ़ंक्शन बनाकर किया जा सकता है जो यह देखने के लिए जांचता है कि क्या यह ऑर्ग-हेडिंग पर है।

(setq org-blank-before-new-entry
      '((heading . always)
       (plain-list-item . nil)))

(defun call-rebinding-org-blank-behaviour (fn)
  (let ((org-blank-before-new-entry
         (copy-tree org-blank-before-new-entry)))
    (when (org-at-heading-p)
      (rplacd (assoc 'heading org-blank-before-new-entry) nil))
    (call-interactively fn)))

(defun smart-org-meta-return-dwim ()
  (interactive)
  (call-rebinding-org-blank-behaviour 'org-meta-return))

(defun smart-org-insert-todo-heading-dwim ()
  (interactive)
  (call-rebinding-org-blank-behaviour 'org-insert-todo-heading))

(define-key org-mode-map (kbd "M-<return>") 'smart-org-meta-return-dwim) 

1
शीर्षकों को सम्मिलित करने के तीन अन्य तरीकों के लिए मुझे यह काम कैसे मिल सकता है, साथ ही: C-ret(org- इंसर्ट-हेडिंग-सम्मान-सामग्री), M-S-return(org-insert-todo- हेडिंग) और C-S-return(org-insert-todo-heading-सम्मान -सामग्री)?
मेजरब्रिग्स

स्पष्ट करने के लिए: org-insert-todo-headingभले ही मैं इसे इस तरह से एक कुंजी से बांधता हूं, काम नहीं करता है: (परिभाषित-कुंजी ऑर्ग-मोड-मैप (केबीडी "एमएस- <वापसी>") 'स्मार्ट-ऑर्ग-इंसर्ट-टू-हेडिंग-डीविम)
मेजरब्रिग्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.