Orgmode从剪贴板插入链接?


9

是否有直接从系统剪贴板直接插入组织模式链接的简单方法?我正在考虑在Safari中选择一个URL,并将该链接直接插入到组织模式文档中。


1
另外,配置书签小程序以使用捕获自动插入链接真的很好。看到这里:orgmode.org/worg/org-contrib/org-protocol.html
mbork 2014年

Answers:


12

关于您想要什么类型的链接以及您认为什么是“简单”的链接,您的问题不是很明确。假设您的意思是以下形式的链接:

[[target][description]]

默认工作流程(将URL放入剪贴板后)为:

C-c C-l C-y RET description RET

输入a description是可选的;如果您未指定链接,则链接的格式为

[[target]]

很简单。它可以在Windows计算机上按预期工作,但是由于某些原因,无法将Firefox或Safari中的URL复制/粘贴到Mac OS上具有Emacs 25.0.50的Emacs中
Alain

@Alain我不在MacOS上,因此我无法对其进行测试,但是您可以尝试使用x-clipboard-yank而不是yank粘贴剪贴板的内容。默认情况下,此命令未绑定到键,因此您必须使用调用它M-x。如果这样可以解决问题,您当然可以为它设置一个便捷的键绑定(通过(global-set-key (kbd "C-c y") 'x-clipboard-yank))。
itsjeyd 2014年

3

根据您偏爱哪两个,这里有两个函数检查剪贴板上是否有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")))))

3

我创建了一个emacs软件包,该软件包可以帮助您从剪贴板插入组织模式链接:

它从剪贴板向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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.