Q: Comment puis-je obtenir une orgfonction de lien personnalisé pour insérer automatiquement une description?
Je voudrais stocker des orgliens vers des fichiers dans un diredtampon, mais je préférerais que la description du lien soit le nom du fichier sans chemin plutôt que de signaler le chemin complet, c'est-à-dire:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Maintenant: les org-store-linkcodes durs sont liés diredpour fournir la valeur par défaut. Au lieu de cela, j'ai écrit une fonction personnalisée (cribbing à partir de la fonction codée en dur) et l'ai ajoutée à 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)
Jusqu'ici tout va bien, et cela fonctionne comme prévu, mais pour une chose:
- Lors d'un appel
org-insert-linkavec le comportement par défaut intégré, il insère simplement le lien sans me demander de description. - Lors de l'appel
org-insert-linkavec ma fonction personnalisée, il m'invite à entrer une description (qu'il remplit correctement avec le nom de fichier stocké dans la:descriptionpropriété).
Je préfère ne pas être invité à entrer la description à chaque fois, et je souhaite org-insert-linkutiliser la valeur :descriptiondéfinie par la fonction personnalisée.
Comment puis-je convaincre org-insert-linkd'utiliser le :descriptionautomatiquement sans me le demander?
link-locationoudefault-descriptiondans la fonctionorg-insert-linkaident-ils? Si le paramètre LINK-LOCATION n'est pas nul, cette valeur sera utilisée comme emplacement du lien au lieu de la lire de manière interactive. Si le paramètre DEFAULT-DESCRIPTION n'est pas nul, cette valeur sera utilisée comme description par défaut.