सीधे एक ऑर्ग-हेडलाइन पर कैसे कूदें?


17

यदि मैं एक ओआरजी फ़ाइल में हूं, तो मुझे एक ऐसी कमांड चाहिए जो एक उम्मीदवार सूची को आइवी / हेल्म शैली में बताए, जिसमें फाइल में सभी ऑर्गन सुर्खियों में शामिल हों और मुझे फ़र्ज़ी खोज के माध्यम से हेडलाइन चुनने की अनुमति दें, जिससे मैं कूदना चाहता हूं सेवा। क्या ऐसा करने के लिए कोई रास्ता है?

जवाबों:


13

ऑर्ग मैनुअल नोड ऑन मोशन बिल्ट-इन कमांड org-goto(डिफ़ॉल्ट बाइंडिंग C-c C-j) का कुछ हद तक स्पष्ट वर्णन देता है , जिसका व्यवहार वांछित प्रभाव को प्राप्त करने के लिए आसानी से अनुकूलित किया जा सकता है:

  1. इस मैनुअल नोड के अंत में सूचीबद्ध अनुकूलन चर के प्रलेखन का निरीक्षण करें: C-h v org-goto-interface RET
  2. यदि आप org-gotoबफ़र की रूपरेखा के माध्यम से आकस्मिक रूप से खोज करने के डिफ़ॉल्ट व्यवहार से खुश हैं , तो आप पूरा होने से पहले एक शीर्षक चुनने के लिए स्विच कर सकते हैं:

    (setq org-goto-interface 'outline-path-completion)
  3. पूरा होने के संकुल के उपयोगकर्ताओं की तरह ido/ ivy/ helmशायद क्रम एक बार में पूरे लक्ष्य पथ को देखने के लिए निम्न सेटिंग को परिवर्तित करना चाहते हैं:

    (setq org-outline-path-complete-in-steps nil)

    अधिक चर्चा के लिए यहां देखें ।

इस दृष्टिकोण में helmसभी पूर्ण रूपरेखाओं के साथ काम करने का अतिरिक्त लाभ (उपयोग, कहते हैं, -सक्रिय कार्यक्षमता) है जो डिफ़ॉल्ट रूप से प्लग इन करता है completing-read, जिसमें मैं व्यक्तिगत रूप से पुष्टि कर सकता हूं, सहित ivy

परिशिष्ट:

इस उत्तर में वर्णित कमांड के outline-path-completionइंटरफ़ेस का उपयोग करते समय org-goto, अनुकूलन योग्य चर org-goto-max-levelप्रस्ताव देने के लिए अधिकतम गहराई निर्धारित करता है।

संपादित करें:

मुझे उपयोगी उत्तर के साथ एक पुराना, प्रासंगिक प्रश्न मिला: /programming//q/15011703/3084001

प्रमाणीकरण (जैसा कि आर टी रिघ की टिप्पणी द्वारा संकेत दिया गया है):

org-goto-interfaceदो मान्यता प्राप्त मूल्यों में से एक को सेट करने का मतलब वैकल्पिक इंटरफ़ेस का त्याग नहीं करना है। org-gotoएक उपसर्ग तर्क (यानी C-u C-c C-jया C-u M-x org-goto RET) के साथ कॉल करना स्वचालित रूप से वर्तमान पूर्णता के लिए वैकल्पिक इंटरफ़ेस का चयन करता है। इस प्रकार, आप org-goto-interfaceउस इंटरफ़ेस पर सेट कर सकते हैं, जिसका उपयोग आप अक्सर करने की संभावना रखते हैं और जब आप अस्थायी रूप से व्यवहार स्विच करना चाहते हैं तो उपसर्ग तर्क का उपयोग कर सकते हैं। अगर यहां तक ​​कि यह आपकी आवश्यकताओं के अनुरूप नहीं है, तो आप org-gotoAtt Righ के उदाहरण के अनुसार, हमेशा अपने खुद के रैपर के आसपास लिख सकते हैं ।


> डिफॉल्ट ओर्ग-गोटो व्यवहार को त्याग दें, आप इसे कार्यात्मक कॉल के चारों ओर एक बाध्यकारी बाइंडिंग का उपयोग करके काम कर सकते हैं(defun my-org-goto () (let ((org-goto-interface 'outline-path-completion)) (org-goto)))
Att Righ

outline-path-completionhelmमेरे बॉक्स पर अच्छी तरह से नहीं खेलता है (यह पिछले एक स्तर को पूरा नहीं कर सकता है - <TAB>यदि helm अक्षम किया गया है तो दबाकर प्राप्त किया जा सकता है: देखें helm-completing-read-handlers-alist)
Att Righ

@AttRigh ज़रूर; -expressions letकिसी भी तरह के अस्थायी बंधन के लिए इस्तेमाल किया जा सकता है; यह प्रश्न प्रासंगिक सेटिंग्स / कार्यक्षमता / पैकेज के बारे में अधिक है। इंटरफ़ेस का एक अस्थायी स्विच प्राप्त करने का एक अधिक सामान्य तरीका org-gotoएक उपसर्ग तर्क के साथ कॉल करना है। मैं इस उत्तर में एक नोट जोड़ूंगा।
तुलसी

@AttRigh मुझे याद है कि कुछ ऐसा ही है ivy, लेकिन जब रिफिलिंग और गलत गहराई में सेटिंग के साथ org-refile-targets, जैसा कि org-gotoअस्थायी रूप से रिफिल-प्रासंगिक सेटिंग्स को अपनी आवश्यकताओं के अनुरूप करने के लिए देखते हैं। दुर्भाग्य से मैं helmइस समय कार्यक्षमता का पता लगाने की स्थिति में नहीं हूं , शायद कोई अन्य उपयोगकर्ता इसमें झंकार कर सकता है?
तुलसी

1
धन्यवाद @ बडिल डिटेल जवाब के लिए। दुर्भाग्य से, इस दृष्टिकोण में पूरा होने के साथ worfया साथ ही काम नहीं करता है counsel-imenu
निन्रोड

8

मैं पैकेज वर्फ़ का उपयोग करता हूं , लेकिन मैं इसके केवल एक ही कार्य को बांधता हूं:

 (use-package worf
    :diminish worf-mode
    :bind (:map org-mode-map ("C-c h" . worf-goto)))

worf-goto आपको मिनी बफर में बफर में शीर्षकों की एक सूची देता है, जिसे आप फिर फ़िल्टर कर सकते हैं।

पैकेज आइवी के लेखक द्वारा बनाया गया है , इसलिए यदि आपको आइवी पसंद है, तो आप कीड़े को पसंद कर सकते हैं।

Worf.el से कुछ प्रासंगिक स्निपेट :

;;  - "g" (`worf-goto'): select an outline in the current buffer, with
;;    completion.  It's very good when you want to search/navigate to
;;    a heading by word or level. See https://github.com/abo-abo/lispy
;;    for a package that uses this method to navigate Lisp code.

(defun worf-goto-action (x)
  (with-ivy-window
    (goto-char (cdr x))
    (outline-show-children 1000)
    (worf-more)))

(defun worf-goto ()
  "Jump to a heading with completion."
  (interactive)
  (let ((cands (worf--goto-candidates)))
    (cond ((eq worf-completion-method 'helm)
           (require 'helm-multi-match)
           (let (helm-update-blacklist-regexps
                 helm-candidate-number-limit)
             (helm :sources
                   `((name . "Headings")
                     (candidates . ,cands)
                     (action . worf-goto-action)
                     (pattern-transformer . worf--pattern-transformer)))))
          ((eq worf-completion-method 'ivy)
           (ivy-read "Heading: " cands
                     :action 'worf-goto-action)))))

1
शुक्रिया @tirocinium। counsel-imenuवर्फ से बेहतर काम पूरा होता है, लेकिन Level1 org से सुर्खियों में नहीं आ सकता। वर्फ़्स सभी स्तरों को खोजता है, इसलिए मुझे लगता है कि मैं यही देख रहा हूँ।
निन्रोड

@ninrod क्या आपने org-imenu-depth2 के डिफ़ॉल्ट से अधिक कुछ करने की कोशिश की है ?
सैम

5

मुझे हेल्म-ऑर्ग-राइफल विशेष रूप से अच्छा लगता है। इसके अलावा कुछ भी जो इमेनु स्रोत लेता है, हेडर प्रदर्शित करने में सक्षम होगा (उदाहरण के लिए इनेमू के साथ हेल्म)।


यह ध्यान दिया जाना चाहिए कि उनके शीर्षकों के अलावा ऑर्ग प्रविष्टियों helm-org-rifleकी सामग्री की खोज की जाती है । मुझे इस व्यवहार को बदलने का कोई तरीका नहीं मिला। helm-org-rifleसंदर्भ org-search-gotoजो सभी सुर्खियों में खोज करते हैं, लेकिन वास्तव में फजी खोज का समर्थन नहीं करते हैं।
आरएच

Att Righ सही है, helm-org-rifleकेवल शीर्षकों की खोज नहीं करता है। ऐसा करने के लिए इसका विस्तार किया जा सकता है, लेकिन ऐसा करने के लिए बहुत कम कारण है, क्योंकि helm-org-in-buffer-headingsआदि हेलम में ही मौजूद हैं।
१17 ’

4

imenuEmacs में बनाया गया है और आवश्यक फजी खोज प्रदान करने के लिए helm / ivy के साथ जोड़ा जा सकता है। helm-org-rifleयदि आप पतवार का उपयोग करते हैं, तो मैं इसकी सलाह दूंगा।


4

प्रमुख आत्म-प्रचार, लेकिन आप orgnav को आज़माना चाहते हैं । इस उद्देश्य के लिए मेरी तरह का अल्फा (लेकिन सक्रिय रूप से मेरे द्वारा उपयोग किया गया) परियोजना है।

orgnav सामग्री के बजाय सुर्खियाँ खोजता है, खोज की गहराई अलग-अलग हो सकती है, खोज पूरी फ़ाइल के बजाय उपशीर्षक (हालांकि यह भी संकीर्णता के साथ प्राप्त की जा सकती है)।

यहाँ कुछ सुविधाओं का एक वीडियो है: https://asciinema.org/a/1r0fp33xgwh48lfgsh7mllw4u

आपको शायद helm-orgपैकेज के बारे में भी जानकारी होनी चाहिए जो helmइस पैकेज के लिए प्रेरणा थी (या बल्कि जिसकी सीमाएं इस पैकेज की प्रेरणा थीं), साथ ही साथ helm-org-rifleअन्य पदों पर भी चर्चा की गई।

(यहां उत्तरों का सौजन्य: https://www.reddit.com/r/emacs/comments/69mc6l/how_to_jump_directly_to_an_orgheadline/ ) इसके अलावा संभावित worf-gotoरूप से कार्य worfएक हिस्सा है (ऑर्गन नेविगेशन मोड जो कि कीबिन्डिंग के एक अलग सेट को लागू करता है। * "" सुर्खियों से पहले)। यह बहुत अधिक अनुरूप लगता है helm-org


4

हिट मारने वाला पुस्तकालय 0.9.0 में एक नई सुविधा है, जो आपके संगठन-एजेंडे-फ़ाइलों में फ़ाइलों की सुर्खियों के लिए पूरा होने है।

वकील-संगठन-एजेंडे-सुर्खियों में

बस अपने एजेंडा फाइलों की सूची को ऑर्ग इनिट में सेट करने की जरूरत है।

(setq org-agenda-files (list "~/org/work.org"
                             "~/org/school.org" 
                             "~/org/home.org"))

@ Tirocinium के उत्तर के संबंध में, यह एक ही लेकिन कई एजेंडा फ़ाइलों के लिए प्रदान करता है।


3

मैं उपयोग करता हूं counsel-imenu; यह अलग-अलग प्रमुखों को सूचीबद्ध करेगा, आप अपने चयन को संकीर्ण करने के लिए कुछ अक्षर टाइप कर सकते हैं और फिर बस दबा सकते हैं <return>


हाय @gnuvince। यह मुझे सही स्तर 1 ओआरजी फाइलों पर कूदने की अनुमति नहीं देता है?
निनोरोड

2

मैं सलाह देता हूं helm-org-in-buffer-headings। यह हेलम में बिल्ट-इन है, और यह संकुचित बफ़र्स का सम्मान करता है, जो महत्वपूर्ण है यदि आप स्वतंत्र रूप से उपशीर्षक को संपादित करने के लिए अप्रत्यक्ष बफ़र्स का उपयोग करते हैं। वहाँ भी helm-org-parent-headingsएक पेड़ को नेविगेट करने के लिए है, और helm-org-agenda-files-headingsसभी एजेंडा फ़ाइलों में नेविगेट करने के लिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.