Answers:
关于您想要什么类型的链接以及您认为什么是“简单”的链接,您的问题不是很明确。假设您的意思是以下形式的链接:
[[target][description]]
默认工作流程(将URL放入剪贴板后)为:
C-c C-l C-y RET description
RET
输入a description
是可选的;如果您未指定链接,则链接的格式为
[[target]]
x-clipboard-yank
而不是yank
粘贴剪贴板的内容。默认情况下,此命令未绑定到键,因此您必须使用调用它M-x
。如果这样可以解决问题,您当然可以为它设置一个便捷的键绑定(通过(global-set-key (kbd "C-c y") 'x-clipboard-yank)
)。
根据您偏爱哪两个,这里有两个函数检查剪贴板上是否有URL,如果有,则将其作为org-mode
链接插入。前者以的形式进行操作[[url]]
,后者以的形式进行操作,[[url][description]]
并将您留在description
现场。
(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")))))
我创建了一个emacs软件包,该软件包可以帮助您从剪贴板插入组织模式链接:
org-cliplink
(也可以通过Melpa获得)它从剪贴板向URL发出HTTP请求,如果响应包含HTML,它将尝试提取标题并以以下格式插入org-mode链接:[[URL][extracted-title]]
。
例如,复制此问题的link后,M-x org-cliplink
在组织模式缓冲区中执行操作将插入:
[[https://emacs.stackexchange.com/q/3280][org mode - Orgmode insert link from clipboard? - Emacs Stack Exchange]]
和链接将看起来超链接为组织模式-Orgmode从剪贴板插入链接?-该缓冲区中的Emacs Stack Exchange。