在Emacs中,我想让键盘组合做一件事,如果我按一次,另一件事,如果我按两次。除此之外我不在乎(可能交替会最有意义)。我知道如何制作替代品,但问题是,我想让它在我做其他事情时重置,这样按下快捷键一次,移动光标,然后再次按下它会按下一次动作,而不是按两次行动。
答案 0 :(得分:3)
您可以使用last-command
,例如
(defun eab/etags-find-or-pop ()
(interactive)
(if (memq last-command '(eab/etags-find-or-pop))
(call-interactively 'pop-tag-mark)
(call-interactively 'etags-select-find-tag-at-point)))
(global-set-key (kbd "M-.") 'eab/etags-find-or-pop)
如果您第一次按M-.
,则会调用一件事,如果M-. M-.
(第二次)调用另一件事。
答案 1 :(得分:1)
测试此类重复的常用方法是使用(eq this-command last-command)
。