Q: Comment puis-je obtenir une org
fonction de lien personnalisé pour insérer automatiquement une description?
Je voudrais stocker des org
liens vers des fichiers dans un dired
tampon, 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-link
codes durs sont liés dired
pour 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-link
avec le comportement par défaut intégré, il insère simplement le lien sans me demander de description. - Lors de l'appel
org-insert-link
avec ma fonction personnalisée, il m'invite à entrer une description (qu'il remplit correctement avec le nom de fichier stocké dans la:description
propriété).
Je préfère ne pas être invité à entrer la description à chaque fois, et je souhaite org-insert-link
utiliser la valeur :description
définie par la fonction personnalisée.
Comment puis-je convaincre org-insert-link
d'utiliser le :description
automatiquement sans me le demander?
link-location
oudefault-description
dans la fonctionorg-insert-link
aident-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.