З: Як я можу отримати власну org
функцію посилання, щоб автоматично вставити опис?
Я хотів би зберігати org
посилання на файли в dired
буфері, але я вважаю за краще, щоб опис посилання було ім'ям файлу sans path, а не повідомляти про повний шлях, тобто:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Тепер: org-store-link
посилання на жорсткі коди dired
для надання за замовчуванням. Натомість я написав користувальницьку функцію (cribbing з жорстко закодованої функції) і додав її до 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 не дорівнює нулю, це значення буде використовуватися як опис за замовчуванням.