我从某个地方复制了这个,并且它适用于一次滚动一行。
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time
但是,我在这里不了解'(1 ((shift) . 1)
的含义。
shift
做了什么?
答案 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))
与后一种情况一样,修饰键没有覆盖。