Llame a este comando cuando el punto esté en cualquier lugar después de los primeros [[
corchetes de un enlace de organización (o en cualquier lugar en / después de un enlace de organización hipervinculado).
Se eliminará un enlace de organización si tiene el formato [[LINK][DESCRIPTION]]
o está [[LINK]]
en un org-mode
búfer; de lo contrario no pasará nada.
Por seguridad, el ENLACE descartado de org-link se guarda kill-ring
en el caso de que surja la necesidad de usar ese enlace en otro lugar.
(defun my/org-delete-link ()
"Replace an org link of the format [[LINK][DESCRIPTION]] with DESCRIPTION.
If the link is of the format [[LINK]], delete the whole org link.
In both the cases, save the LINK to the kill-ring.
Execute this command while the point is on or after the hyper-linked org link."
(interactive)
(when (derived-mode-p 'org-mode)
(let ((search-invisible t) start end)
(save-excursion
(when (re-search-backward "\\[\\[" nil :noerror)
(when (re-search-forward "\\[\\[\\(.*?\\)\\(\\]\\[.*?\\)*\\]\\]" nil :noerror)
(setq start (match-beginning 0))
(setq end (match-end 0))
(kill-new (match-string-no-properties 1)) ; Save the link to kill-ring
(replace-regexp "\\[\\[.*?\\(\\]\\[\\(.*?\\)\\)*\\]\\]" "\\2" nil start end)))))))
[[LINK]]
enlaces de organización de formato. Aprendí sobrematch-beginning
ymatch-end
de tu respuesta.