emacs vim重新映射的邪恶等价物,例如:nnoremap dd g0dg$

emacs vim重新映射的邪恶等价物,例如:nnoremap dd g0dg$,vim,emacs,emulation,Vim,Emacs,Emulation,我本质上是一个vi/vim人,但我经常使用LaTeX,我非常喜欢AUCTeX Preview,所以直到最近我才将emacs与viper一起使用,但现在我正在尝试邪恶。然而,我肯定不是emacs专家 emacs中的视觉线条模式对于AUCTeX Preview来说非常棒,因为当预览图像被激活时,线条长度都被弄乱了,但是如果每个段落实际上只有一条长线,那么在视觉线条模式下,无论预览图像是否被激活,都看起来很棒 有一件事一直困扰着我,那就是像'j'和'dd'这样的viper命令只在“逻辑行”上工作,而不

我本质上是一个vi/vim人,但我经常使用LaTeX,我非常喜欢AUCTeX Preview,所以直到最近我才将emacs与viper一起使用,但现在我正在尝试邪恶。然而,我肯定不是emacs专家

emacs中的视觉线条模式对于AUCTeX Preview来说非常棒,因为当预览图像被激活时,线条长度都被弄乱了,但是如果每个段落实际上只有一条长线,那么在视觉线条模式下,无论预览图像是否被激活,都看起来很棒

有一件事一直困扰着我,那就是像'j'和'dd'这样的viper命令只在“逻辑行”上工作,而不是在屏幕行上工作。在vim中,人们会使用“gj”而不是“j”,事实上,这就是邪恶的运作方式。但是,“dd”没有等效项

我遇到了它,它似乎做到了:nnoremap dd g0dg$。事实上,在“邪恶”中输入“右手边”(即使带有数字前缀)的效果与它应该的完全一样

然而,我无法在邪恶的文档中轻易看到如何实现这种重新映射。我见过一个函数,但它的所有建议和示例都显示了如何将一个键序列映射到一个已经定义的邪恶函数。我看不到任何现有的邪恶密钥序列被重新映射到另一个(可能更长)现有邪恶密钥序列的例子

我想我可以用一系列现有的邪恶函数替换映射的“右侧”,但我不确定如何做到这一点。或者我可以使用基本的emacs密钥重新映射,但我担心这会干扰邪恶的不同模式/状态,或者根本不起作用


有人有什么想法吗?

这里有一个基本函数,它可以实现我认为您想要的功能(注意,它不能实现Vim/Evil提供的其他功能,如计数;请使用
Evil define命令
)。如果您试图将其映射到
gdd
,您会遇到一些键绑定问题,因此作为一种解决方法,您可以将其映射到
gD
(或任何您喜欢的内容):


我只想添加一种方法来找出与键序列相对应的邪恶函数序列:使用
C-hk
。例如,在您的案例中:
C-hkg0
->
C-hkd
->
C-hkg$
C-hkg$
->
视觉线的邪恶末端
(defun evil-delete-visual-line ()
  (interactive)
  (let ((beg (progn (beginning-of-visual-line) (point)))
        (end (progn (end-of-visual-line) (point))))
    (evil-delete beg end)))

(define-key evil-normal-state-map "gD" 'evil-delete-visual-line)