如何理解`(setq mouse-wheel-scroll-amount'(1((shift).1)))`

时间:2017-12-01 00:41:34

标签: scroll emacs mousewheel

我从某个地方复制了这个,并且它适用于一次滚动一行。

(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time

但是,我在这里不了解'(1 ((shift) . 1)的含义。 shift做了什么?

1 个答案:

答案 0 :(得分:3)

与Emacs中的任何变量一样,使用 C-h v mouse-wheel-scroll-amount来了解它。

在这个例子中,我看到:

  

mouse-wheel-scroll-amount是'mwheel.el'中定义的变量   它的值是(5((移位).1)((对照)))

     

文档:
  旋转鼠标滚轮时滚动窗口的数量。   这是一个alist 将修改键映射到滚动量时   按下修改键后移动滚轮。   列表的元素具有表单(MODIFIERS.AMOUNT)或只有AMOUNT如果   修改者是零。

     

AMOUNT应该是要滚动的行数,或者是接近满的行数   屏幕。它也可以是浮点数,指定分数   滚动的全屏。近乎全屏是'next-screen-context-lines'   不到一整屏。

这有点技术性,但是告诉我Emacs默认会在我使用鼠标滚轮的同时滚动5行;但是当我持有 shift 时,我只有一行;如果我按住 ctrl ,它会一次滚动一些接近全屏的内容 - 因为((control))((control) . nil)是一样的。

行为:

(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
因此,

等同于

(setq mouse-wheel-scroll-amount '(1))

与后一种情况一样,修饰键没有覆盖。