P: Jak mogę uzyskać niestandardową orgfunkcję linku do automatycznego wstawiania opisu?
Chciałbym przechowywać orglinki do plików w diredbuforze, ale wolałbym, aby opis linku był ścieżką bez nazwy pliku, niż zgłosić pełną ścieżkę, tj .:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Teraz: org-store-linktwarde kody łączy z, diredaby podać wartość domyślną. Zamiast tego napisałem niestandardową funkcję (cribbing z funkcji zakodowanej na stałe) i dodałem ją do 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)
Jak dotąd tak dobrze i działa zgodnie z oczekiwaniami, ale z jednej strony:
- Podczas wywoływania
org-insert-linkz wbudowanym domyślnym zachowaniem, po prostu wstawia link, nie pytając mnie o opis. - Podczas wywoływania za
org-insert-linkpomocą mojej funkcji niestandardowej monituje mnie o wprowadzenie opisu (który poprawnie wypełnia nazwą pliku zapisaną we:descriptionwłaściwości).
Wolałbym nie być monitowany o opis za każdym razem i chcę org-insert-linkużyć wartości :descriptiontego zestawu funkcji niestandardowych.
Jak przekonać org-insert-linkdo korzystania z :descriptiontrybu automatycznego bez monitowania mnie o to?
link-locationlubdefault-descriptionfunkcjaorg-insert-linkpomagają? Jeśli parametr LINK-LOCATION ma wartość inną niż zero, ta wartość zostanie użyta jako lokalizacja łącza zamiast odczytu jednego interaktywnie. Jeśli parametr DEFAULT-DESCRIPTION ma wartość inną niż zero, ta wartość zostanie użyta jako opis domyślny.