This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
spacemacs/layers/+misc/multiple-cursors
Seong Yong-ju 6556cfc80d [multiple-cursors] Improvements
Fixed evil-mc-mode won't start automatically
Moved evil-mc key bindings to evil-mc-key-map, not global keymap
2019-11-15 13:49:02 +01:00
..
config.el docstring 2019-09-16 17:41:15 +03:00
funcs.el Check for universal arg before paste 2019-04-25 19:30:29 +02:00
packages.el [multiple-cursors] Improvements 2019-11-15 13:49:02 +01:00
README.org [multiple-cursors] Update snippet, sort key bindings 2019-05-27 15:46:07 +02:00

multiple-cursors layer

Description

Features:

  • support for multiple cursors.

Install

To use this configuration layer, add it to your ~/.spacemacs. You will need to add multiple-cursors to the existing dotspacemacs-configuration-layers list in this file.

Configuration

Currently supported backends are:

To set your choice of backend, configure multiple-cursors-backend variable of the layer.

  (setq-default dotspacemacs-configuration-layers '(
    (multiple-cursors :variables multiple-cursors-backend 'evil-mc))

Key bindings

evil-mc

The evil-mc package provides the following key bindings:

Key binding Description
g r f evil-mc-make-and-goto-first-cursor
g r h evil-mc-make-cursor-here
g r j evil-mc-make-cursor-move-next-line
g r k evil-mc-make-cursor-move-prev-line
g r l evil-mc-make-and-goto-last-cursor
g r m evil-mc-make-all-cursors
g r n evil-mc-skip-and-goto-next-match
g r N evil-mc-skip-and-goto-next-cursor
g r p evil-mc-skip-and-goto-prev-match
g r P evil-mc-skip-and-goto-prev-cursor
g r r evil-mc-resume-cursors
g r s evil-mc-pause-cursors
g r q evil-mc-undo-all-cursors
g r u evil-mc-undo-last-added-cursor

For easy navigation you also have the following:

Key binding Description
M-n evil-mc-make-and-goto-next-cursor
M-p evil-mc-make-and-goto-prev-cursor
C-n evil-mc-make-and-goto-next-match
C-p evil-mc-make-and-goto-prev-match
C-t evil-mc-skip-and-goto-next-match
C-M-j evil-mc-make-cursor-move-next-line
C-M-k evil-mc-make-cursor-move-prev-line

multiple-cursors

The multiple-cursors backend provides the following key bindings to insert new cursors:

Key binding Description
SPC s m a mc/mark-all-dwim
SPC s m b mc/mark-all-like-this
SPC s m m mc/mark-more-like-this-extended
SPC s m r mc/edit-lines

These special bindings manipulate text under cursors:

Key binding Description
SPC s m s l mc/insert-letters
SPC s m s m mc/mark-sgml-tag-pair
SPC s m s n mc/insert-numbers
SPC s m s r set-rectangular-region-anchor
SPC s m s s mc/sort-regions
SPC s m s t mc/reverse-regions

Notes

multiple-cursors

Some commands executed during multiple-cursors enabled may lead Emacs to go frenzy. Commands like window manipulation will be executed multiple times if mc is active. Not all Emacs commands may be compatible with mc.

To run interactive M-x commands with mc, run the command first. This will result with application of the command to the leading cursor. Then press C-: to apply the command to consequtive cursors. If this is not the case or you want a command to be executed only once, configure the mc/cmds-to-run-once variable of the layer like in the following example.

  (setq-default dotspacemacs-configuration-layers '(
    (multiple-cursors :variables
                      multiple-cursors-backend 'mc
                      mc/cmds-to-run-once '(upcase-region))))