¿Hay una manera simple de insertar un enlace en modo org directamente desde el portapapeles del sistema? Estoy pensando en seleccionar una URL en Safari e insertar ese enlace directamente en un documento en modo organización.
¿Hay una manera simple de insertar un enlace en modo org directamente desde el portapapeles del sistema? Estoy pensando en seleccionar una URL en Safari e insertar ese enlace directamente en un documento en modo organización.
Respuestas:
Su pregunta no es muy específica con respecto a qué tipo de enlace desea y lo que consideraría "simple". Suponiendo que se refiere a un enlace de la siguiente forma:
[[target][description]]
El flujo de trabajo predeterminado (después de poner la URL en su portapapeles) es:
C-c C-l C-y RET description
RET
Ingresar a description
es opcional; si no especifica uno, el enlace tendrá la forma
[[target]]
x-clipboard-yank
lugar de yank
pegar el contenido del portapapeles. Este comando no está vinculado a una tecla de forma predeterminada, por lo que deberá llamarlo usando M-x
. Si eso resuelve el problema, por supuesto, puede configurar una combinación de teclas conveniente para ello (a través de (global-set-key (kbd "C-c y") 'x-clipboard-yank)
).
Dependiendo de cuál de los dos prefiera, aquí hay dos funciones que verifican si hay una URL en el portapapeles y, si es así, insértela en el punto como un org-mode
enlace. El primero lo hace en forma de [[url]]
, y el segundo en forma de [[url][description]]
y te deja en el description
campo.
(defun insert-url-as-org-link-sparse ()
"If there's a URL on the clipboard, insert it as an org-mode
link in the form of [[url]]."
(interactive)
(let ((link (substring-no-properties (x-get-selection 'CLIPBOARD)))
(url "\\(http[s]?://\\|www\\.\\)"))
(save-match-data
(if (string-match url link)
(insert (concat "[[" link "]]"))
(error "No URL on the clipboard")))))
(defun insert-url-as-org-link-fancy ()
"If there's a URL on the clipboard, insert it as an org-mode
link in the form of [[url][*]], and leave point at *."
(interactive)
(let ((link (substring-no-properties (x-get-selection 'CLIPBOARD)))
(url "\\(http[s]?://\\|www\\.\\)"))
(save-match-data
(if (string-match url link)
(progn
(insert (concat "[[" link "][]]"))
(backward-char 2))
(error "No URL on the clipboard")))))
He creado un paquete de emacs que puede ayudarlo a insertar enlaces en modo org desde el portapapeles:
org-cliplink
(también disponible a través de Melpa)Se realiza una solicitud HTTP a la URL desde el portapapeles y si la respuesta contiene HTML se trata de extraer el título e inserta el enlace de org-mode en este formato: [[URL][extracted-title]]
.
Por ejemplo, después de copiar el enlace de esta pregunta , hacer M-x org-cliplink
en un búfer de modo org insertará:
[[https://emacs.stackexchange.com/q/3280][org mode - Orgmode insert link from clipboard? - Emacs Stack Exchange]]
y el enlace se verá hipervinculado como modo org - ¿Orgmode insertar enlace desde el portapapeles? - Emacs Stack Exchange en ese búfer.