प्रश्न: मैं org
स्वचालित रूप से विवरण डालने के लिए एक कस्टम लिंक फ़ंक्शन कैसे प्राप्त कर सकता हूं ?
मैं org
एक dired
बफर में फ़ाइलों के लिंक को स्टोर करना चाहता हूं , लेकिन यह पसंद करेगा कि लिंक का विवरण फ़ाइल का नाम पथ हो, बजाय पूर्ण पथ की रिपोर्ट करने के, यानी:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
अब: डिफ़ॉल्ट प्रदान करने के लिए org-store-link
हार्डकोड लिंक से dired
। इसके बजाय, मैंने एक कस्टम फ़ंक्शन (हार्ड-कोडित फ़ंक्शन से क्रिबिंग) लिखा है और इसे इसमें जोड़ा गया है org-store-link-functions
:
(defun dired-store-link ()
(when (derived-mode-p 'dired-mode)
(let ((file (dired-get-filename nil t)))
(setf file (if file
(abbreviate-file-name (expand-file-name file))
default-directory))
(org-store-link-props :type "dired"
:link file
:description (file-name-nondirectory file))
file)))
(add-to-list 'org-store-link-functions #'dired-store-link)
अब तक बहुत अच्छा है, और यह उम्मीद के मुताबिक काम करता है, लेकिन एक बात के लिए:
- जब
org-insert-link
बिल्ट-इन, डिफ़ॉल्ट व्यवहार के साथ कॉल किया जाता है, तो यह केवल मुझसे विवरण के बिना लिंक सम्मिलित करता है। org-insert-link
मेरे कस्टम फ़ंक्शन के साथ कॉल करते समय, यह मुझे एक विवरण दर्ज करने के लिए संकेत देता है (जो कि यह:description
संपत्ति में संग्रहीत फ़ाइल नाम के साथ सही ढंग से पॉप्युलेट करता है)।
मुझे हर बार विवरण के लिए संकेत नहीं दिया जाता है, और कस्टम फ़ंक्शन सेट org-insert-link
के मूल्य का उपयोग करना चाहते हैं :description
।
मैं इसके लिए मुझे संकेत दिए बिना स्वचालित रूप org-insert-link
से उपयोग करने के लिए कैसे मना कर सकता हूं :description
?
link-location
याdefault-description
फ़ंक्शन मेंorg-insert-link
कोई मदद करता है ? यदि LINK-LOCATION पैरामीटर गैर-शून्य है, तो यह मान एक संवादात्मक रूप से पढ़ने के बजाय लिंक स्थान के रूप में उपयोग किया जाएगा। यदि DEFAULT-DESCRIPTION पैरामीटर गैर-शून्य है, तो यह मान डिफ़ॉल्ट विवरण के रूप में उपयोग किया जाएगा।