Features
Increment / Decrement binary, octal, decimal and hex literals.
Works like =C-a= / =C-x= in VIM, i.e. searches for number up to =eol= and then increments or decrements.
When a region is active, as in evil's visual mode, all the numbers within that region will be incremented/decremented (unlike in VIM).
Increment/decrement numbers incrementally like =g C-a= / =g C-x= in VIM.
Optionally keep zero padding (off by default).
** Detected Literals
Usage Once this package is installed, all you need to do is bind keys to =evil-numbers/inc-at-pt= and =evil-numbers/dec-at-pt=.
Position cursor over or before the literal and play with your numbers!
You may also want to bind keys to the incremental versions of these functions.
** Customization
=evil-numbers-pad-default= :: Set to =t= if you want numbers to be padded with zeros (numbers with a leading zero are always padded). If you want both behaviors, all commands take an optional argument =padded=.
=evil-numbers-separator-chars= :: This option to support separator characters, set to "_" or "," to support numeric literals such as: =16_777_216= or =4,294,967,296=.
You may wish to set this as a buffer local variable to enable this only for languages that support separators.
=evil-numbers-case= :: The case to use for hexadecimal numbers.
=evil-numbers-use-cursor-at-end-of-number= :: Support matching numbers directly before the cursor.
This is off by default as it doesn't follow VIM's behavior.
** Key Bindings Example key bindings:
(global-set-key (kbd "C-c +") 'evil-numbers/inc-at-pt)
(global-set-key (kbd "C-c -") 'evil-numbers/dec-at-pt)
(global-set-key (kbd "C-c C-+") 'evil-numbers/inc-at-pt-incremental)
(global-set-key (kbd "C-c C--") 'evil-numbers/dec-at-pt-incremental)
or only in evil's =normal= & =visual= states:
(evil-define-key '(normal visual) 'global (kbd "C-c +") 'evil-numbers/inc-at-pt)
(evil-define-key '(normal visual) 'global (kbd "C-c -") 'evil-numbers/dec-at-pt)
(evil-define-key '(normal visual) 'global (kbd "C-c C-+") 'evil-numbers/inc-at-pt-incremental)
(evil-define-key '(normal visual) 'global (kbd "C-c C--") 'evil-numbers/dec-at-pt-incremental)
Keypad =+= and =-= present an alternative that can be directly bound without shadowing the regular =+= and =-=:
(evil-define-key '(normal visual) 'global (kbd "<kp-add>") 'evil-numbers/inc-at-pt)
(evil-define-key '(normal visual) 'global (kbd "<kp-subtract>") 'evil-numbers/dec-at-pt)
(evil-define-key '(normal visual) 'global (kbd "C-<kp-add>") 'evil-numbers/inc-at-pt-incremental)
(evil-define-key '(normal visual) 'global (kbd "C-<kp-subtract>") 'evil-numbers/dec-at-pt-incremental)
** Basic Installation Put in =load-path=, =(require 'evil-numbers)= and set key bindings.
** Use Package Assuming you have the =melpa= repository enabled, =use-package= can be used as follows.
(use-package evil-numbers)
Known Bugs See http://github.com/juliapath/evil-numbers/issues
Similar Packages
Contributors