在邪恶模式下,如何只需按J将光标向下移动3行



在邪恶模式下,我可以通过命令">C-u 3 M-x邪恶下一行"使光标下移3行,但我如何通过按J使光标下移三行?

1。简短回答

将其添加到您的.emacs文件:

(evil-define-motion evil-next-line-3 (count)
"Move the cursor 3 * COUNT lines down."
:type line
(let (line-move-visual)
(evil-line-move (* 3 (or count 1)))))

注意,J当前绑定到evil-join

如果你可以重新绑定,只需添加:

(define-key evil-normal-state-map "J" 'evil-next-line-3)

现在,要连接行,您可以键入M-xevil-joinRET或将其他内容绑定到evil-join(见下文(。

请注意,如果您键入2J,您将向下移动两次3行,这或多或少是向下移动6行。。。而CCD_ 9CCD_。

2.答案不那么短(我实际做了什么(

我从未使用过evil-mode。。。所以我尝试添加这个包并启用了evil-mode(这对我来说没问题,因为我知道主要的vi命令,并且我知道如何使用C--M-xevil-modeRET禁用它(。

当启用evil-mode并且我键入C-hkJ时,帮助缓冲区显示:

J runs the command evil-join (found in evil-normal-state-map), 
which is an interactive compiled Lisp function in ‘evil-commands.el’.
It is bound to J.
(evil-join BEG END)
Join the selected lines.

然后我键入C-hkj,单击Help缓冲区中的evil-commands.el链接,将evil-next-line函数的定义复制并调整为evil-next-line-3函数,并将其绑定到J

如果您想回到J的上一个绑定(或想将其绑定到其他东西(,您可以评估以下内容:

(define-key evil-normal-state-map "J" 'evil-join)

最新更新