आउटलाइन पथ समापन के माध्यम से प्वाइंट पर संगठन-आईडी लिंक डालें


12

वर्तमान में आंतरिक org-mode org-id लिंक सम्मिलित करने के लिए, मैं शीर्षक पर नेविगेट करता हूं या इसे एजेंडा व्यू में ऊपर खींचता हूं (Ca s heading test search RET), लिंक को Cl (org-store-link) के साथ स्टोर करें, जहां पर वापस जा रहा है मैं लिंक सम्मिलित करना चाहता हूं, फिर Cc Cl (org-insert-link) के साथ लिंक डालें।

इसके बजाय, मैं एक कुंजी को मैप करना पसंद करूंगा जो मुझे ऑर्ग-रिफाइल (Cc Cw) के समान टैब पूर्णता का उपयोग करके वर्तमान बिंदु पर एक लिंक डालने की अनुमति देता है। इच्छित परिणाम के रूप में एक org-id आंतरिक लिंक होगा:

[[id:d7534b2f-c221-4dea-8566-d5ce3e4e1b78][Example Link]]

Org-id.el के माध्यम से देखने पर ऐसा लगता है जैसे org-id-get-with-outline-path-complete को इस उद्देश्य के लिए डिज़ाइन किया गया था। मैंने कोशिश की:

(global-set-key "\C-ci" (lambda () (interactive) (org-id-get-with-outline-path-completion)))

लेकिन यह इरादा के अनुसार काम नहीं किया।

मेरे पास init.el फ़ाइल निम्नलिखित है:

;; Use global IDs
(require 'org-id)
(setq org-id-link-to-org-use-id t)

;; Update ID file .org-id-locations on startup
(org-id-update-id-locations)

;; Refile options
(setq org-refile-targets (quote ((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9))))
(setq org-refile-use-outline-path 'file)
(setq org-outline-path-complete-in-steps t)
(setq org-refile-allow-creating-parent-nodes t)

आपको एक "-" याद आ रही है org-id-get-with outline-path-completion। क्या यह समस्या है?
इरिकस्टोक्स

दुर्भाग्य से नहीं - यह सिर्फ एक टाइपोग्राफिक त्रुटि थी। मैंने सवाल अपडेट किया है।
sk8 बड़ा

बहुत बुरा। यह कैसे असफल हो रहा है? जब मैं इसे आज़माता हूं तो यह काम करता है।
erikstokes

फ़ंक्शन निश्चित रूप से कहा जाता है। यह मुझे प्रवेश के लिए संकेत देता है, मुझे टैब पूरा करने के माध्यम से नेविगेट करने की अनुमति देता है (जो महान है और जैसा कि काम करता है), लेकिन जब मैं प्रवेश करता हूं, तो लिंक को चिपकाने के बजाय, यह कर्सर को वर्तमान हेडलाइन पर स्थानांतरित करता है, सीसी के समान। Cu (रूपरेखा-अप-हेडिंग)।
स्काइवेड

मैंने सोचा कि यह पुराने ऑर्गन वर्जन के कारण हो सकता है, लेकिन एमएसीएस 24.5 में सबसे हाल ही में कोशिश की है, इसलिए यह मेरे कॉन्फ़िगरेशन में कुछ होना चाहिए। क्या कोई पुष्टि कर सकता है कि ऊपर दिया गया मेरा कोड वास्तव में उनके लिए एक लिंक सम्मिलित करता है?
sk8WOOD

जवाबों:


6

मैंने ऑर्ग-मोड स्रोत में चारों ओर पोक किया और एक न्यूनतम प्रलेखित फीचर पाया । यदि आप किसी फ़ंक्शन को परिभाषित करते हैं org-TYPE-complete-link, तो इसका उपयोग प्रकार के लिंक को पूरा करने के लिए किया जाएगा TYPE। तो हमें बस एक फ़ंक्शन को परिभाषित करने की आवश्यकता है org-id-complete-linkजो हमारा पूरा करता है और लिंक को वापस करता है ("आईडी:" उपसर्ग सहित)।

(defun org-id-complete-link (&optional arg)
  "Create an id: link using completion"
  (concat "id:"
          (org-id-get-with-outline-path-completion)))

लिंक को सामान्य तरीके से डालें (साथ C-c C-l), "आईडी:" का चयन करें क्योंकि प्रकार और पूरा होने वाले फ़ंक्शन में आग लग जाएगी।

संपादित करें: org-modeसंस्करण 9.0 के रूप में ऊपर दिए गए फंक्शन को परिभाषित करते हुए ऊपर दिए गए अब काम नहीं करता ( रेफ )। इसके बजाय आपको पूर्ण फ़ंक्शन को org-link-parametersउपयोग करने के लिए जोड़ना होगा

(org-link-set-parameters "id"
                         :complete 'org-id-complete-link)

यह उत्कृष्ट है और इरादा के अनुसार काम करता है! मैंने जो एकमात्र संशोधन किया, वह org-id-get-with-out-out-path-complete के तर्क के रूप में org-Refile-target को जोड़ना था। इस तरह, मैं अपनी किसी भी ओआरजी फाइल से लिंक हड़प सकता हूं। आपकी सहायताके लिए धन्यवाद!
sk8WOOD

क्या आप अपने अंतिम समाधान को शामिल करने के लिए सवाल अपडेट कर सकते हैं? मुझे यकीन नहीं है कि डॉक्टर का मतलब क्या हैTARGETS may be a setting for ‘org-refile-targets’ to define eligible headlines.
kshenoy

अंतिम समाधान सिर्फ ऊपर दिए गए फ़ंक्शन को परिभाषित करना है और कॉल करना है org-link-set-parametersयदि आप org-mode9 का उपयोग कर रहे हैं। आपको तर्क देने के org-id-get-with-outline-path-completionलिए अतिरिक्त तर्क देता है कि आपने जिस तरह से चुना है, उसे उसी तरह से सीमित करें org-refile-targetsजब आप परिष्कृत करते हैं। सब कुछ के लिए सहायता देखें, लेकिन एक सामान्य सेटिंग है ((org-agenda-files :maxlevel . 3) (nil :maxlevel . 2))जो एजेंडा फाइलों में 3 स्तरों तक और वर्तमान बफर में 2 तक सीमित है।
erikstokes
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.