在邪恶模式下,我可以通过命令">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-x
evil-join
RET
或将其他内容绑定到evil-join
(见下文(。
请注意,如果您键入2J
,您将向下移动两次3行,这或多或少是向下移动6行。。。而CCD_ 9CCD_。
2.答案不那么短(我实际做了什么(
我从未使用过evil-mode
。。。所以我尝试添加这个包并启用了evil-mode
(这对我来说没问题,因为我知道主要的vi
命令,并且我知道如何使用C--
M-x
evil-mode
RET
禁用它(。
当启用evil-mode
并且我键入C-h
k
J
时,帮助缓冲区显示:
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-h
k
j
,单击Help缓冲区中的evil-commands.el
链接,将evil-next-line
函数的定义复制并调整为evil-next-line-3
函数,并将其绑定到J
。
如果您想回到J
的上一个绑定(或想将其绑定到其他东西(,您可以评估以下内容:
(define-key evil-normal-state-map "J" 'evil-join)