org-rich-yank icon indicating copy to clipboard operation
org-rich-yank copied to clipboard

📋 Rich text clipboard for org-mode: Paste as a #+BEGIN_SRC block of correct mode, with link to where it came from

#+TITLE: org-rich-yank

[[https://melpa.org/#/org-rich-yank][https://melpa.org/packages/org-rich-yank-badge.svg]]

Do you often yank source code into your org files, manually surrounding it in =#+BEGIN_SRC= blocks? This package will give you a new way of pasting that automatically surrounds the snippet in blocks, marked with the major mode of where the code came from, and adds a link to the source file after the block.

#+ATTR_HTML: :alt org-rich-yank demo [[file:org-rich-yank.gif][file:org-rich-yank.gif]]

  • Installation

** MELPA If you use [[https://melpa.org/][MELPA]], you can just do =M-x list-packages=, find =org-rich-yank= in the list and hit =i x=.

** Manual Just put =org-rich-yank.el= somewhere in =load-path=.

  • Usage

** Manual, loading on startup:

To use, require and bind whatever keys you prefer to the interactive function:

#+BEGIN_SRC emacs-lisp (require 'org-rich-yank) (define-key org-mode-map (kbd "C-M-y") #'org-rich-yank) #+END_SRC

** With use-package, enabled after org:

If you prefer =use-package=, the above settings would be:

#+BEGIN_SRC emacs-lisp (use-package org-rich-yank :ensure t :demand t :bind (:map org-mode-map ("C-M-y" . org-rich-yank))) #+END_SRC

The =:demand t= in there is because we never know when the user will hit =C-M-y=, so we always have to store the current buffer on kills. You can remove the =:demand t= and have lazy/deferred loading, but then the first time you hit =C-M-y= after startup, you'll get a message that you have to kill the selection again.