vim - Emacs 邪恶 "repeat"(点)行为

标签 vim emacs

我的 .emacs 中有以下行

(定义键邪恶正常状态映射“\M-j”(lambda()(交互式)(邪恶下一行5)))

这使得文件中的导航更加容易。例如,使用 M-j 我会转到下面 5 行,因此我不必按 j 5 次。我对所有 hjkl 都做同样的事情。问题是这个命令污染了 Evil 中的最后一个重复(点),所以假设我替换了给定行中的一个单词,然后我执行 M-j 进行更改下面5行一个字。如果我按 .,它会跳到下面另外 5 行,而不是像 Vim 中那样替换单词。如果我使用任何 hjkl ,它不会污染最后的重复。我该如何做才能使我的函数不会污染最后的重复

编辑:我刚刚注意到,它实际上并没有发生在 \M-j\M-k 上,而只发生在 \M-h\M-l,所以问题就更奇怪了。两者都定义为:

(定义键邪恶正常状态映射“\M-h”'(lambda()(交互式)(邪恶向后字符5)))

(定义键邪恶正常状态映射“\M-l”'(lambda()(交互式)(邪恶转发字符5)))

最佳答案

只需用 defun 替换 lambda:(defun my-5-lines-down...),然后 (evil-declare-motion 'my-5-lines-向下) 在邪恶(可能还有 vim?)的情况下, Action 不算是可重复的,所以这应该可以解决问题。或者,如果您想控制跳转列表,您可以使用 evil-define-motion 而不是 defun 。请参阅documentation用于定义运动。

关于vim - Emacs 邪恶 "repeat"(点)行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26519331/

相关文章:

vim - 如何在vim中直观地移动光标?(不是按行)

vim - 如何关闭带有 ~ 后缀的 vim 文件的自动保存

vim - 使用插件的重新映射之间的冲突

Vim: 冒号附加 .,.+3

vim - 从 vim 中完全删除 NERDTree?

emacs - Emacs 中的原始缩进

emacs 在 if else block 中浏览花括号

c++ - 将 C++ 片段添加到 Jetbrains Clion

emacs - Emacs 是否有某种 "package-search"函数可用?

emacs - 使用 emacs 循环自定义主题 24