Saat ini untuk menyisipkan tautan internal org-mode org-id, saya menavigasi ke tajuk atau menariknya dalam tampilan agenda (tajuk penelusuran uji tajuk Ca), menyimpan tautan dengan Cl (tautan toko-org), kembali ke tempat Saya ingin memasukkan tautan, lalu menyisipkan tautan dengan Cc Cl (org-insert-link).
Alih-alih, saya lebih suka memetakan kunci yang memungkinkan saya memasukkan tautan pada titik saat ini menggunakan penyelesaian tab yang mirip dengan org-refile (Cc Cw). Hasil yang dimaksud adalah tautan internal org-id dalam bentuk:
[[id:d7534b2f-c221-4dea-8566-d5ce3e4e1b78][Example Link]]
Melihat melalui org-id.el, sepertinya penyelesaian org-id-get-with-outline dirancang untuk tujuan ini. Saya mencoba:
(global-set-key "\C-ci" (lambda () (interactive) (org-id-get-with-outline-path-completion)))
tapi itu tidak berfungsi sebagaimana dimaksud.
Saya memiliki yang berikut ini di file init.el saya:
;; Use global IDs
(require 'org-id)
(setq org-id-link-to-org-use-id t)
;; Update ID file .org-id-locations on startup
(org-id-update-id-locations)
;; Refile options
(setq org-refile-targets (quote ((nil :maxlevel . 9) (org-agenda-files :maxlevel . 9))))
(setq org-refile-use-outline-path 'file)
(setq org-outline-path-complete-in-steps t)
(setq org-refile-allow-creating-parent-nodes t)
org-id-get-with outline-path-completion
. Apakah itu masalahnya?Jawaban:
Saya mencari-cari di sumber mode-org dan menemukan fitur minimal didokumentasikan . Jika Anda mendefinisikan suatu fungsi
org-TYPE-complete-link
, itu akan digunakan untuk menyediakan penyelesaian untuk tautan tipeTYPE
. Jadi kita hanya perlu mendefinisikan fungsiorg-id-complete-link
yang menyelesaikan dan mengembalikan tautan (termasuk awalan "id:").Masukkan tautan dengan cara normal (dengan
C-c C-l
), pilih "id:" karena jenis dan fungsi penyelesaian akan menyala.EDIT: Pada
org-mode
versi 9.0 hanya mendefinisikan fungsi seperti di atas tidak lagi berfungsi ( ref ). Sebaliknya Anda harus menambahkan fungsi penyelesaian untukorg-link-parameters
menggunakansumber
TARGETS may be a setting for ‘org-refile-targets’ to define eligible headlines.
org-link-set-parameters
jika Anda menggunakanorg-mode
9. Argumen tambahan untukorg-id-get-with-outline-path-completion
membiarkan Anda membatasi tajuk utama yang Anda pilih sepertiorg-refile-targets
halnya ketika Anda melakukan refile. Lihat bantuan untuk semuanya, tetapi pengaturan umum adalah((org-agenda-files :maxlevel . 3) (nil :maxlevel . 2))
yang membatasi hingga 3 level dalam file agenda dan 2 di buffer saat ini.