selected.el provides the
selected-minor-mode for Emacs. When
selected-minor-mode is active, the keybindings in
selected-keymap will be enabled when the region is active. This is useful for commands that operates on the region, which you only want bound to a key when the region is active.
selected.el also provides
selected-global-mode, if you want
selected-minor-mode in every buffer.
selected-keymap has no default bindings. Bind it yourself:
(require 'selected) (define-key selected-keymap (kbd "q") #'selected-off) (define-key selected-keymap (kbd "u") #'upcase-region) (define-key selected-keymap (kbd "d") #'downcase-region) (define-key selected-keymap (kbd "w") #'count-words-region) (define-key selected-keymap (kbd "m") #'apply-macro-to-region-lines)
It is cleaner with use-package:
(use-package selected :ensure t :commands selected-minor-mode :bind (:map selected-keymap ("q" . selected-off) ("u" . upcase-region) ("d" . downcase-region) ("w" . count-words-region) ("m" . apply-macro-to-region-lines)))
Then activate it with
M-x selected-minor-mode. It can be a good idea to add
selected-minor-mode to the hooks of the major-modes where you want it activated.
selected-off is a function which deactivates the keybindings until the next time the region becomes active. This is useful when you want to execute a command on the region, but then disable
selected-minor-mode in favour of other commands like multiple-cursors.
Major mode specific bindings
You may want some keybindings to operate on the region, but only if you’re in a certain major-mode. This is possible if you create a keymap named
selected-<major-mode>-map (for instance
selected-org-mode-map) and add the mode-specific bindings there. Here’s an example, using
(use-package selected :ensure t :commands selected-minor-mode :init (setq selected-org-mode-map (make-sparse-keymap)) :bind (:map selected-keymap ("q" . selected-off) ("u" . upcase-region) ("d" . downcase-region) ("w" . count-words-region) ("m" . apply-macro-to-region-lines) :map selected-org-mode-map ("t" . org-table-convert-region)))
Installation and setup
selected.el is on MELPA, so the easiest way is to install it from there using
M-x package-install. MELPA needs to be in your
(add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)
If you add
(selected-global-mode) to your init-file, or if you add
selected-minor-mode to a hook, please do so towards the end of your init-file. This is in order to prioritize the bindings in
selected-keymap over other minor-modes.
Here’s some functions and packages that are useful with
- google-this or lookup-word-on-internet
Feel free to suggest additions to this list!