Actuellement, pour insérer des liens org-id internes en mode org, je navigue vers une rubrique ou la tire vers le haut dans la vue de l'agenda (recherche de test de rubrique Ca RET), stocke le lien avec Cl (org-store-link), revenant à l'endroit où Je veux insérer le lien, puis insérer le lien avec Cc Cl (org-insert-link).
Au lieu de cela, je préférerais mapper une clé qui me permet d'insérer un lien au point actuel en utilisant la complétion d'onglets similaire à org-refile (Cc Cw). Le résultat souhaité serait un lien interne org-id sous la forme:
[[id:d7534b2f-c221-4dea-8566-d5ce3e4e1b78][Example Link]]
En parcourant org-id.el, il semble que org-id-get-with-outline-path-complètement a été conçu à cet effet. J'ai essayé:
(global-set-key "\C-ci" (lambda () (interactive) (org-id-get-with-outline-path-completion)))
mais cela n'a pas fonctionné comme prévu.
J'ai les éléments suivants dans mon fichier init.el:
;; 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
. Est-ce là le problème?Réponses:
J'ai fouillé dans la source en mode org et trouvé une fonctionnalité peu documentée . Si vous définissez une fonction
org-TYPE-complete-link
, elle sera utilisée pour fournir l'achèvement des liens de typeTYPE
. Il nous suffit donc de définir une fonctionorg-id-complete-link
qui effectue notre achèvement et renvoie le lien (y compris le préfixe "id:").Insérez le lien de la manière normale (avec
C-c C-l
), sélectionnez "id:" car le type et la fonction d'achèvement se déclencheront.EDIT: À partir de la
org-mode
version 9.0, la simple définition de la fonction ci-dessus ne fonctionne plus ( réf ). Au lieu de cela, vous devez ajouter la fonction d'achèvement à l'org-link-parameters
utilisationla source
TARGETS may be a setting for ‘org-refile-targets’ to define eligible headlines.
org-link-set-parameters
si vous utilisezorg-mode
9. L'argument supplémentaireorg-id-get-with-outline-path-completion
vous permet de limiter les titres que vous avez choisis, tout commeorg-refile-targets
lorsque vous effectuez un nouveau dépôt. Voir l'aide pour tout, mais un paramètre commun est celui((org-agenda-files :maxlevel . 3) (nil :maxlevel . 2))
qui limite à 3 niveaux profonds dans les fichiers d'agenda et 2 dans le tampon actuel.