org-mode – Insertar enlace de Id. De organización en un punto a través de la finalización de la ruta del esquema

Pregunta:

Actualmente, para insertar enlaces de ID de organización en modo de organización interno, navego hasta un encabezado o lo abro en la vista de agenda (búsqueda de prueba de encabezado de Ca RET), guardo el enlace con Cl (enlace de tienda de organización), volviendo a donde Quiero insertar el enlace, luego insertar el enlace con Cc Cl (org-insert-link).

En su lugar, preferiría mapear una clave que me permita insertar un enlace en el punto actual usando la finalización de tabulación similar a org-refile (Cc Cw). El resultado deseado sería un enlace interno org-id con el siguiente formato:

[[id:d7534b2f-c221-4dea-8566-d5ce3e4e1b78][Example Link]]

Mirando a través de org-id.el, parece que org-id-get-with-outline-path-completation fue diseñado para este propósito. Lo intenté:

(global-set-key "\C-ci" (lambda () (interactive) (org-id-get-with-outline-path-completion)))

pero no funcionó como se esperaba.

Tengo lo siguiente en mi archivo 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)

Respuesta:

Busqué en la fuente del modo org y encontré una característica mínimamente documentada . Si define una función org-TYPE-complete-link , se utilizará para proporcionar compleción para enlaces de tipo TYPE . Así que solo necesitamos definir una función org-id-complete-link que complete y devuelva el enlace (incluido el prefijo "id:").

(defun org-id-complete-link (&optional arg)
  "Create an id: link using completion"
  (concat "id:"
          (org-id-get-with-outline-path-completion)))

Inserte el enlace de la manera normal (con Cc Cl ), seleccione "id:" como el tipo y se activará la función de finalización.

EDITAR: A partir de la versión 9.0 org-mode simplemente definir la función como se indicó anteriormente ya no funciona ( ref ). En su lugar, debe agregar la función de finalización a org-link-parameters usando

(org-link-set-parameters "id"
                         :complete 'org-id-complete-link)

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım