F: Wie kann ich eine benutzerdefinierte orgLinkfunktion zum automatischen Einfügen einer Beschreibung erhalten?
Ich möchte orgLinks zu Dateien in einem diredPuffer speichern , möchte jedoch, dass die Linkbeschreibung der Dateiname ohne Pfad ist, anstatt den vollständigen Pfad zu melden, dh:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Jetzt: org-store-linkHardcodes von dired, um die Standardeinstellung bereitzustellen. Stattdessen habe ich eine benutzerdefinierte Funktion geschrieben (Cribbing von der fest codierten Funktion) und sie hinzugefügt zu 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)
So weit so gut und es funktioniert wie erwartet, aber zum einen:
- Beim Aufrufen
org-insert-linkmit dem integrierten Standardverhalten wird der Link einfach eingefügt, ohne dass ich nach einer Beschreibung gefragt werde. - Wenn
org-insert-linkich mit meiner benutzerdefinierten Funktion aufrufe, werde ich aufgefordert, eine Beschreibung einzugeben (die korrekt mit dem in der:descriptionEigenschaft gespeicherten Dateinamen gefüllt wird ).
Ich möchte lieber nicht jedes Mal zur Beschreibung aufgefordert werden und möchte org-insert-linkden Wert verwenden :description, den die benutzerdefinierten Funktionen festlegen.
Wie kann ich überzeugen org-insert-link, das :descriptionautomatisch zu verwenden, ohne mich dazu aufzufordern?
link-locationoderdefault-descriptionin der Funktionorg-insert-link? Wenn der Parameter LINK-LOCATION nicht Null ist, wird dieser Wert als Verbindungsposition verwendet, anstatt eine interaktiv zu lesen. Wenn der Parameter DEFAULT-DESCRIPTION nicht null ist, wird dieser Wert als Standardbeschreibung verwendet.