带有邪恶视觉状态图的Emacs邪恶密钥绑定不起作用



在Vim中,我有一个用于导航的键绑定:noremap <M-j> 5j。这将在正常视觉视线模式下工作。

我想在Emacs中有同样的行为,所以我做了:

(define-key evil-visual-state-map "M-j" '(lambda () (interactive) (evil-next-line 5)))

(define-key evil-motion-state-map "M-j" '(lambda () (interactive) (evil-next-line 5)))

它将在正常视觉模式下工作,但不在visual line(即大写V)模式下工作。

我是Emacs的新手,来自Vim。

查看源代码,让我们这样做:

(evil-define-motion myevil-next-visual-line (count)
"Move the cursor COUNT screen lines down, or 5."
:type exclusive
  (let ((line-move-visual t))
  (evil-line-move (or count 5))))

(define-key evil-visual-state-map "M-j" 'myevil-next-visual-line)

如果您有

(defun godown() (interactive) (evil-next-line 5)) (define-key evil-visual-state-map "M-j" 'godown)

然后你可以只添加

(evil-declare-motion 'godown)

或者你可以使用

(evil-define-motion godown () (interactive) ... )

以取代CCD_ 7+CCD_。

来源:https://bitbucket.org/lyro/evil/issues/395/cant-use-evil-next-line-in-a-script-in-a

最新更新