1
人们可以很容易地映射某些键向上滚动。加速键盘滚动
(defun up1()
(interactive)
(scroll-up 1))
(defun up2()
(interactive)
(scroll-up 2))
(global-set-key "\M-]" 'up2)
我正在寻找的是以下行为。滚动的第一把 将调用up1(),随后的调用up2()。
人们可以很容易地映射某些键向上滚动。加速键盘滚动
(defun up1()
(interactive)
(scroll-up 1))
(defun up2()
(interactive)
(scroll-up 2))
(global-set-key "\M-]" 'up2)
我正在寻找的是以下行为。滚动的第一把 将调用up1(),随后的调用up2()。
如何:
(setq my-scroll-counter 0)
(setq my-scroll-limit 5)
(defun up1()
(interactive)
(if (eq last-command this-command)
(incf my-scroll-counter)
(setq my-scroll-counter 0))
(if (> my-scroll-counter my-scroll-limit)
(scroll-up 2)
(scroll-up 1)))
(global-set-key "\M-]" 'up1)
如果你想要的东西票友一点点,你算算你的滚动步动态基于你多少次重复命令:
(setq my-scroll-counter 0)
(setq my-maximum-scroll 20)
(setq my-scroll-acceleration 4)
(defun up1()
(interactive)
(if (eq last-command this-command)
(incf my-scroll-counter)
(setq my-scroll-counter 0))
(scroll-up (min
(+ 1 (/ my-scroll-counter my-scroll-acceleration))
my-maximum-scroll)))
(global-set-key "\M-]" 'up1)
不完全是。我只想在键盘重复中加入“加速”。这个想法是,如果我停止滚动,这意味着我想更仔细地看当前可见的代码。 – Calaf 2013-04-05 20:59:18
我不明白你的意思。每当您连续调用up1而不是另一个命令时,加速度会超过“my-scroll-limit”时间。 '键盘重复'是什么意思? – Tyler 2013-04-05 21:02:57
如果您按下键盘键,则只输入一个实例,但如果按住键盘键,则会重复键并获得多个实例。如果我持有\ M-],我希望滚动速度最初很慢,但要加速。如果我停下来,我想要重新启动相同的行为。 – Calaf 2013-04-05 21:18:52