【发布时间】:2014-12-18 14:29:56
【问题描述】:
我的.emacs 中有以下行
(define-key evil-normal-state-map "\M-j" (lambda () (interactive) (evil-next-line 5)))
这使得文件中的导航更容易。例如,M-j 我在下面 5 行,所以我不必按 j 5 次。我对所有hjkl 都这样做。问题是这个命令污染了 Evil 中的 last repeat(点),所以假设我替换了给定行中的一个单词,然后我用 M-j 去更改下面 5 行的单词.如果我按下.,它将在下面再跳5行,而不是像在Vim中那样替换单词。如果我使用任何hjkl,它不会污染最后一次重复。我怎样才能使我的函数不会污染最后一次重复?
编辑:我刚刚注意到\M-j 和\M-k 实际上并没有发生这种情况,而只发生在\M-h 和\M-l 上,所以问题更加奇怪。两者都定义为:
(define-key evil-normal-state-map "\M-h" '(lambda () (interactive) (evil-backward-char 5)))
(define-key evil-normal-state-map "\M-l" '(lambda () (interactive) (evil-forward-char 5)))
【问题讨论】:
-
嗨,不知道,所以问:您不喜欢使用
{或(或使用sexps 导航段落,使用beginning-of-defun或beginning-of-sexp吗?比起使用“5 行”,我更喜欢它们,因为它们更有意义。