D: Come posso ottenere una org
funzione di collegamento personalizzata per inserire automaticamente una descrizione?
Vorrei archiviare i org
collegamenti ai file in un dired
buffer, ma preferirei che la descrizione del collegamento sia il nome del file senza percorso piuttosto che riportare il percorso completo, ovvero:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Ora: org-store-link
collegamenti hardcodes da dired
per fornire l'impostazione predefinita. Invece, ho scritto una funzione personalizzata (paralizzando dalla funzione hard-coded) e l'ho aggiunta a 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)
Fin qui tutto bene, e funziona come previsto, ma per prima cosa:
- Quando si chiama
org-insert-link
con il comportamento predefinito predefinito, inserisce semplicemente il collegamento senza chiedermi una descrizione. - Quando chiamo
org-insert-link
con la mia funzione personalizzata, mi chiede di inserire una descrizione (che popola correttamente con il nome del file memorizzato nella:description
proprietà).
Preferirei non essere richiesto per la descrizione ogni volta e vorrei org-insert-link
utilizzare il valore :description
impostato dalla funzione personalizzata.
Come posso convincere org-insert-link
a utilizzare :description
automaticamente senza chiedermelo?
link-location
odefault-description
nella funzioneorg-insert-link
aiutano? Se il parametro LINK-LOCATION è diverso da zero, questo valore verrà utilizzato come posizione del collegamento anziché leggerne uno in modo interattivo. Se il parametro DEFAULT-DESCRIPTION è diverso da zero, questo valore verrà utilizzato come descrizione predefinita.