我的中有以下行.emacs
(define-key evil-normal-state-map "\M-j" (lambda () (interactive) (evil-next-line 5)))
这使得文件中的导航变得更加容易。例如,与M-j
我在下面 5 行,所以我不必按j
5次。我对所有人都做同样的事情hjkl
。问题是这个命令会污染最后重复在邪恶(点)中,假设我替换了给定行中的一个单词,那么我就这样做M-j
去改变下面5行的一个词。如果我按.
,它会跳转到下面另外 5 行,而不是像 Vim 中那样替换单词。如果我使用任何hjkl
不过,它不会污染最后重复。我怎样才能使我的功能不污染最后重复?
EDIT:我刚刚注意到它实际上并没有发生\M-j
and \M-k
,但仅与\M-h
and \M-l
,所以这个问题就更奇怪了。两者都定义为:
(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)))
只需将 lambda 替换为 defun say 即可:(defun my-5-lines-down...)
进而(evil-declare-motion 'my-5-lines-down)
在邪恶(可能还有 vim?)中,动作不算是可重复的,所以这应该可以解决问题。或者你可以使用evil-define-motion
如果你想控制跳转列表,而不是 defun 。看文档 https://gitorious.org/evil/evil/blobs/raw/doc/doc/evil.pdf用于定义运动。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)