Q: Làm thế nào tôi có thể có được một orgchức năng liên kết tùy chỉnh để tự động chèn một mô tả?
Tôi muốn lưu trữ orgcác liên kết đến các tệp trong một diredbộ đệm, nhưng muốn mô tả liên kết là đường dẫn tên tệp sans hơn là báo cáo đường dẫn đầy đủ, tức là:
file:~/the/full/path/myfile.ext ; default, but no thanks
myfile.ext ; what I want
Bây giờ: org-store-linkhardcodes liên kết từ diredđể cung cấp mặc định. Thay vào đó, tôi đã viết một hàm tùy chỉnh (cũi từ hàm được mã hóa cứng) và thêm nó vào 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)
Cho đến nay rất tốt, và nó hoạt động như mong đợi, nhưng vì một điều:
- Khi gọi
org-insert-linkvới hành vi mặc định, tích hợp sẵn, nó chỉ cần chèn liên kết mà không yêu cầu tôi mô tả. - Khi gọi
org-insert-linkvới chức năng tùy chỉnh của mình, nó sẽ nhắc tôi nhập một mô tả (nó được điền chính xác với tên tệp được lưu trữ trong thuộc:descriptiontính).
Tôi không muốn được nhắc về mô tả mỗi lần và muốn org-insert-linksử dụng giá trị của :descriptionbộ chức năng tùy chỉnh đó.
Làm thế nào tôi có thể thuyết phục org-insert-linkđể sử dụng :descriptiontự động mà không cần nhắc tôi về nó?
link-locationhoặcdefault-descriptiontrong hàmorg-insert-linkgiúp bất kỳ? Nếu tham số LINK-LOCATION không phải là con số không, giá trị này sẽ được sử dụng làm vị trí liên kết thay vì đọc tương tác. Nếu tham số DEFAULT-DESCRIPTION không phải là con số không, giá trị này sẽ được sử dụng làm mô tả mặc định.