T: Bagaimana saya bisa mendapatkan orgfungsi tautan khusus untuk memasukkan deskripsi secara otomatis?
Saya ingin menyimpan orgtautan ke file dalam diredbuffer, tetapi saya lebih suka bahwa deskripsi tautan menjadi path nama file sans daripada melaporkan path lengkap, yaitu:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Sekarang: org-store-linktautan hardcodes dari direduntuk menyediakan default. Sebagai gantinya, saya telah menulis fungsi khusus (menjiplak dari fungsi hard-coded) dan menambahkannya ke 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)
Sejauh ini bagus, dan berfungsi seperti yang diharapkan, tetapi untuk satu hal:
- Saat menelepon
org-insert-linkdengan perilaku bawaan bawaan, itu hanya menyisipkan tautan tanpa meminta saya untuk deskripsi. - Saat memanggil
org-insert-linkdengan fungsi kustom saya, itu meminta saya untuk memasukkan deskripsi (yang diisi dengan benar dengan nama file yang disimpan di:descriptionproperti).
Saya lebih suka tidak diminta untuk deskripsi setiap kali, dan ingin org-insert-linkmenggunakan nilai :descriptionyang ditetapkan fungsi kustom.
Bagaimana saya bisa meyakinkan org-insert-linkuntuk menggunakan :descriptionsecara otomatis tanpa meminta saya untuk itu?
link-locationataudefault-descriptiondalam fungsiorg-insert-linkmembantu? Jika parameter LINK-LOCATION adalah non-nil, nilai ini akan digunakan sebagai lokasi tautan alih-alih membaca satu secara interaktif. Jika parameter DEFAULT-DESCRIPTION adalah nihil, nilai ini akan digunakan sebagai deskripsi default.