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://ergoemacs.org/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
and paste previous command is named
[see Emacs: Copy/Paste and 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: How to Define Keys]