Homepage: https://www.emacswiki.org/emacs/download/second-sel.el
Author: Drew Adams
Updated:
Secondary selection commands
Commands that use the secondary selection.
Commands defined here:
`isearch-yank-secondary', `primary-to-secondary',
`rotate-secondary-selection-yank-pointer',
`secondary-yank|select|move|swap', `secondary-save-then-kill',
`secondary-swap-region', `secondary-to-primary',
`secondary-to-register', `set-secondary-start',
`yank-pop-commands', `yank-pop-secondary', `yank-secondary'.
User options defined here:
`secondary-selection-ring-max',
`secondary-selection-yank-commands',
`secondary-selection-yank-secondary-commands',
Non-interactive functions defined here:
`add-secondary-to-ring', `current-secondary-selection',
`get-secondary-selection', `second-sel-msg',
`secondary-selection-limits'.
Internal variables defined here:
`secondary-selection-ring',
`secondary-selection-ring-yank-pointer',
`secondary-selection-save-posn', `yank-undo-function'.
***** NOTE: The following functions defined in `mouse.el'
have been REDEFINED or ADVISED HERE:
`mouse-drag-secondary', `mouse-save-then-kill-delete-region',
`mouse-secondary-save-then-kill'.
Suggested key bindings:
(global-set-key (kbd "C-M-y") 'secondary-yank|select|move|swap)
(define-key esc-map "y" 'yank-pop-commands)
(define-key isearch-mode-map (kbd "C-M-y") 'isearch-yank-secondary)
(global-set-key (kbd "C-x C-M-SPC") 'set-secondary-start)
(global-set-key (kbd "C-x C-M-") 'secondary-save-then-kill)
(global-set-key (kbd "C-M-") 'mouse-secondary-save-then-kill)
(define-key ctl-x-r-map (kbd "S") 'secondary-to-register)
You can enhance what `second-sel.el' offers in these ways:
1. Use library `browse-kill-ring+.el'.
This lets you use `M-y' at the top level to browse either the
`kill-ring' or the `secondary-selection-ring', or both, to
choose a selection to yank.
And `M-y' following a yank from either of these rings replaces
that yank with the next (or prefix-argth) ring entry. IOW, it
does a `yank-pop' or a `yank-pop-secondary', as appropriate.
(If you use `browse-kill-ring+.el', load `second-sel.el'
first.)
2. Use Icicles (library `icicles.el').
If you do that then the behavior is similar to that provided by
`browse-kill-ring+.el', except that `M-y' at the top level lets
you choose a selection from either ring using completion
against the ring entries. And during completion you can use
`S-delete' to delete entries from the ring.
(This is the case by default, but you can customize Icicles to
not do this by removing the `M-y' binding, if, for example, you
prefer the `browse-kill-ring+.el' behavior to completing.