Emacs: Paste or Paste Previous 💠
Here's a command that paste text, and if repeated, paste the previous item.
If a numerical argument is given, paste that many times.
(defun xah-paste-or-paste-previous () "Paste. When called repeatedly, paste previous. This command calls `yank', and if repeated, call `yank-pop'. When `universal-argument' is called first with a number arg, paste that many times. URL `http://xahlee.info/emacs/emacs/emacs_paste_or_paste_previous.html' Version 2017-07-25 2020-09-08" (interactive) (progn (when (and delete-selection-mode (region-active-p)) (delete-region (region-beginning) (region-end))) (if current-prefix-arg (progn (dotimes (_ (prefix-numeric-value current-prefix-arg)) (yank))) (if (eq real-last-command this-command) (yank-pop 1) (yank)))))
Emacs paste command is named
yank
【Ctrl+y】,
and paste previous command is named yank-pop
【Alt+y】.
〔see Emacs: Copy Paste, kill-ring〕
xah-paste-or-paste-previous
command combines them, so now you only need one key, instead of 2 keys for 2 commands.
You can set the yank key for it, like this:
(global-set-key (kbd "C-y") 'xah-paste-or-paste-previous)
〔see Emacs Keys: Define Key〕