Die folgende Elisp-Funktion nimmt eine Verknüpfung um den aktuellen Punkt, wie von org-bracket-link-regexp
entweder [[Link][Description]]
oder erkannt [[Link]]
, und ersetzt sie Description
im ersten Fall oder Link
im zweiten Fall durch.
(defun afs/org-replace-link-by-link-description ()
"Replace an org link by its description or if empty its address"
(interactive)
(if (org-in-regexp org-bracket-link-regexp 1)
(let ((remove (list (match-beginning 0) (match-end 0)))
(description (if (match-end 3)
(org-match-string-no-properties 3)
(org-match-string-no-properties 1))))
(apply 'delete-region remove)
(insert description))))
[[LINK]]
Format-Organisationslinks zu unterstützen. Ich habe vonmatch-beginning
undmatch-end
aus Ihrer Antwort erfahren .Ich habe versucht, dies der Antwort von @Andrew hinzuzufügen, aber es war zu lang für einen Kommentar ...
Ich mochte seine Lösung wirklich, außer dass sie den Cursor bewegte. (Technisch gesehen hat es den Punkt bewegt. Wie auch immer ...) Glücklicherweise war es einfach hinzuzufügen
save-excursion
, um dies zu vermeiden:quelle
Rufen Sie diesen Befehl auf, wenn der Punkt irgendwo nach den ersten
[[
Klammern eines Organisationslinks liegt (oder irgendwo auf / nach einem Hyperlink-Organisationslink).Ein Organisationslink wird gelöscht, wenn er das Format
[[LINK][DESCRIPTION]]
oder[[LINK]]
einenorg-mode
Puffer hat. sonst wird nichts passieren.Aus Sicherheitsgründen wird der verworfene LINK von org-link in gespeichert,
kill-ring
falls die Notwendigkeit besteht, diesen Link an anderer Stelle zu verwenden.quelle
Am schnellsten können Sie den Cursor vor den Link setzen und dann
C-M-space
(mark-sexp
) eingeben, um den gesamten Link zu markieren. Löschen Sie es dann, indem Sie eine Rücktaste (falls verwendetdelete-selection-mode
) oder eingebenC-w
.quelle
Dieses sehr schnelle und sehr schmutzige Makro wäre eine Möglichkeit, nicht die beste:
quelle
Es gibt eine Lösung, die die Verwendung von benutzerdefiniertem Parsen mit regulären Ausdrücken vermeidet und direkt die integrierte
org-element
API verwendet:quelle