Q: Làm thế nào tôi có thể có được một org
chứ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ữ org
các liên kết đến các tệp trong một dired
bộ đệ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-link
hardcodes 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-link
vớ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-link
vớ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:description
tính).
Tôi không muốn được nhắc về mô tả mỗi lần và muốn org-insert-link
sử dụng giá trị của :description
bộ 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 :description
tự động mà không cần nhắc tôi về nó?
link-location
hoặcdefault-description
trong hàmorg-insert-link
giú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.