Atualmente, para inserir links de org-id internos no modo organizacional, eu navego para um cabeçalho ou puxo para cima na exibição da agenda (pesquisa de teste de cabeçalho RET), armazeno o link com Cl (org-store-link), voltando para onde Quero inserir o link e insira o link com Cc Cl (org-insert-link).
Em vez disso, eu preferiria mapear uma chave que permita inserir um link no ponto atual usando a conclusão de tabulação semelhante ao org-refile (Cc Cw). O resultado pretendido seria um link interno da identificação organizacional no formato:
[[id:d7534b2f-c221-4dea-8566-d5ce3e4e1b78][Example Link]]
Olhando através do org-id.el, parece que o org-id-get-with-outline-path-complete foi projetado para esse fim. Eu tentei:
(global-set-key "\C-ci" (lambda () (interactive) (org-id-get-with-outline-path-completion)))
mas não funcionou como pretendido.
Eu tenho o seguinte no meu arquivo 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
. Esse é o problema?Respostas:
Procurei na fonte do modo organizacional e encontrei um recurso minimamente documentado . Se você definir uma função
org-TYPE-complete-link
, ela será usada para fornecer a conclusão para links do tipoTYPE
. Então, apenas precisamos definir uma funçãoorg-id-complete-link
que conclua e retorne o link (incluindo o prefixo "id:").Insira o link da maneira normal (com
C-c C-l
), selecione "id:", pois o tipo e a função de conclusão serão acionados.EDIT: A partir da
org-mode
versão 9.0, apenas definir a função como acima acima não funciona mais ( ref ). Em vez disso, você deve adicionar a função de conclusão aoorg-link-parameters
usofonte
TARGETS may be a setting for ‘org-refile-targets’ to define eligible headlines.
org-link-set-parameters
se você estiver usandoorg-mode
9. O argumento extra paraorg-id-get-with-outline-path-completion
permitir que você limite as manchetes de sua escolha, assim comoorg-refile-targets
faz quando refila. Veja a ajuda de tudo, mas uma configuração comum é((org-agenda-files :maxlevel . 3) (nil :maxlevel . 2))
que limita a 3 níveis de profundidade nos arquivos da agenda e 2 no buffer atual.