Orgmode Link aus Zwischenablage einfügen?

9

Gibt es eine einfache Möglichkeit, einen Link im Organisationsmodus direkt aus der Systemzwischenablage einzufügen? Ich denke darüber nach, eine URL in Safari auszuwählen und diesen Link direkt in ein Dokument im Organisationsmodus einzufügen.

Alain
quelle
1
Es ist auch sehr schön, ein Lesezeichen so zu konfigurieren, dass der Link mithilfe der Erfassung automatisch eingefügt wird. Siehe hier: orgmode.org/worg/org-contrib/org-protocol.html
mbork

Antworten:

12

Ihre Frage ist nicht sehr spezifisch in Bezug darauf, welche Art von Link Sie möchten und was Sie als "einfach" betrachten würden. Angenommen, Sie meinen einen Link der folgenden Form:

[[target][description]]

Der Standardworkflow (nachdem Sie die URL in Ihre Zwischenablage eingefügt haben) lautet:

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

Die Eingabe von a descriptionist optional. Wenn Sie keinen angeben, hat der Link die Form

[[target]]
itsjeyd
quelle
Einfach genug. Es funktioniert wie erwartet auf einem Windows-Computer, kann jedoch aus irgendeinem Grund keine URL von Firefox oder Safari in Emacs unter MacOS mit Emacs 25.0.50
Alain
@Alain Ich bin nicht unter MacOS, daher kann ich es nicht testen, aber Sie können versuchen, den Inhalt der Zwischenablage x-clipboard-yankanstelle von yankeinzufügen. Dieser Befehl ist standardmäßig nicht an einen Schlüssel gebunden, daher müssen Sie ihn mit aufrufen M-x. Wenn dies das Problem löst, können Sie natürlich eine bequeme Schlüsselbindung dafür einrichten (via (global-set-key (kbd "C-c y") 'x-clipboard-yank)).
Itsjeyd
3

Abhängig davon, welche der beiden Funktionen Sie bevorzugen, finden Sie hier zwei Funktionen, mit denen Sie überprüfen können, ob sich eine URL in der Zwischenablage befindet, und diese gegebenenfalls an einer bestimmten Stelle als org-modeLink einfügen . Ersteres tut es in Form von [[url]]und Letzteres in Form von [[url][description]]und lässt Sie auf dem descriptionFeld.

(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")))))
Dan
quelle
3

Ich habe ein Emacs-Paket erstellt, das Ihnen beim Einfügen von Links im Organisationsmodus aus der Zwischenablage helfen kann:

Es sendet eine HTTP-Anfrage an die URL aus der Zwischenablage. Wenn die Antwort HTML enthält, versucht es, den Titel zu extrahieren, und fügt den Link im Organisationsmodus in folgendem Format ein : [[URL][extracted-title]].


Zum Beispiel, nach dieser Frage des Kopieren Link , tat M-x org-cliplinkin einem org-Modus Puffer wird eingefügt:

[[https://emacs.stackexchange.com/q/3280][org mode - Orgmode insert link from clipboard? - Emacs Stack Exchange]]

und der Link wird als org-Modus verlinkt aussehen - Orgmode Link aus Zwischenablage einfügen? - Emacs Stack Exchange in diesem Puffer.

rexim
quelle