GitHub - edkolev/evil-lion: Evil align operator
source link: https://github.com/edkolev/evil-lion
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
README.md
evil-lion
This package provides gl
and gL
align operators: gl MOTION CHAR
and right-align gL MOTION CHAR
.
Use CHAR /
to enter regular expression if a single character wouldn't suffice.
Use CHAR RET
to align with align.el's default rules for the active major mode.
Port of vim-lion
Installation
with use-package
(use-package evil-lion :ensure t :config (evil-lion-mode))
without use-package
M-x package-install RET evil-lion RET
, then add in init.el
:
(evil-lion-mode)
Usage
Align with gl MOTION CHAR
or right-align with gL MOTION CHAR
.
If the align separator is /
you will be prompted for a regular expression instead of a plain character.
If the align separator is RET
alignment will be performed with align.el's rules specific for the major mode.
You can pass count 1
to align on the first occurrence of CHAR
. To pass count, use: COUNT gl MOTION CHAR
.
Example, left align gl
:
After pressing glip=
(gl
is the operator, ip
text object paragraph, =
separator)
one = 1
three = 3
fifteen = 15
will become:
one = 1
three = 3
fifteen = 15
Example, right align with gL
:
After pressing gLip,
one, two, three,
fifteen, sixteen, seventeen
will become:
one, two, three,
fifteen, sixteen, seventeen
Example, align with major mode's alignment rules:
In perl-mode, after pressing glib RET
(RET
is return key, not individal keys):
my %hash = ( a => 1, bbb => 2, cccc => 3, a => 1, bbb => 2, cccccc => 3 );
will become:
my $hash = ( a => 1, bbb => 2, cccc => 3, a => 1, bbb => 2, cccccc => 3 ););
Example, align on the first occurrence of CHAR:
After pressing 1glip"
(red "red"
(teal-green "#6fb593")
(wheat "#b9c791")
(blue "blue")
(cyan "#54b6b6")
will become:
(red "red"
(teal-green "#6fb593")
(wheat "#b9c791")
(blue "blue")
(cyan "#54b6b6")
Customization
Disable squeezing of spaces
By default, evil-lion will remove unnecessary spaces if there are any. To disable this behaviour:
(setq evil-lion-squeeze-spaces nil) ;; default t
Change the default keys
;; use `g a` (mnemonic `align`) ;; these variables should be changed before (evil-lion-mode) is called (setq evil-lion-left-align-key (kbd "g a")) (setq evil-lion-right-align-key (kbd "g A")) (evil-lion-mode)
Or withuse-package
and bind-key
:
(use-package evil-lion
:ensure t
:bind (:map evil-normal-state-map
("g l " . evil-lion-left)
("g L " . evil-lion-right)
:map evil-visual-state-map
("g l " . evil-lion-left)
("g L " . evil-lion-right))
Bind in prog modes only
Bind evil-lion-left
and evil-lion-right
to your liking.
The evil-lion-mode
is just a convenience mode and should not be enalbed with this setup.
(evil-define-key 'normal prog-mode-map (kbd "g l") 'evil-lion-left (kbd "g L") 'evil-lion-right) (evil-define-key 'visual prog-mode-map (kbd "g l") 'evil-lion-left (kbd "g L") 'evil-lion-right)
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK