vim - Emacs Evil "repeat" (dot) behavior -
i have next line in .emacs
(define-key evil-normal-state-map "\m-j" (lambda () (interactive) (evil-next-line 5)))
that makes navigation in file easier. instance, m-j
go 5 lines below, don't have press j
5 times. same hjkl
. problem command pollutes last repeat in evil (the dot), let's replace word in given line, m-j
go alter word 5 lines below. if press .
, jump 5 lines below, instead of replacing word happen in vim. if utilize of hjkl
though, won't pollute last repeat. how can function doesn't pollute last repeat?
edit: noticed doesn't happen \m-j
, \m-k
, \m-h
, \m-l
, problem stranger. both defined as:
(define-key evil-normal-state-map "\m-h" '(lambda () (interactive) (evil-backward-char 5)))
(define-key evil-normal-state-map "\m-l" '(lambda () (interactive) (evil-forward-char 5)))
just replace lambda defun say: (defun my-5-lines-down...)
and (evil-declare-motion 'my-5-lines-down)
in evil (and vim?) motions not count repeatables should trick. alternatively can utilize evil-define-motion
instead of defun if want command on jump list. see documentation defining motion.
vim emacs
No comments:
Post a Comment