Buz*_*uzz 1 emacs scroll mousewheel
我从某个地方复制了这个,它非常适合一次滚动一行。
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1))) ;; one line at a time
Run Code Online (Sandbox Code Playgroud)
但是,我不明白'(1 ((shift) . 1)这里的含义 。有什么作用shift?
与 Emacs 中的任何变量一样,使用C-hv mouse-wheel-scroll-amount来了解它。
在这种情况下,我看到:
mouse-wheel-scroll-amount 是'mwheel.el' 中定义的变量。
它的值为 (5 ((shift) . 1) ((control)))文档:
旋转鼠标滚轮时滚动窗口的量。这是一个列表,将修饰键映射到在按下修饰键的情况下移动滚轮时要滚动的量。列表元素的形式为 (MODIFIERS . AMOUNT) 或者如果 MODIFIERS 为零则只是 AMOUNT。AMOUNT 应该是要滚动的行数,或者接近全屏时为零。它也可以是一个浮点数,指定要滚动的全屏的分数。接近全屏是比全屏少的“next-screen-context-lines”。
这有点技术性,但告诉我默认情况下,当我使用鼠标滚轮时,Emacs 将一次滚动 5 行;但是当我持有时一次只有 1 行shift;如果我按住ctrl它,它会一次滚动接近全屏的内容——((control))与((control) . nil).
的行为:
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
Run Code Online (Sandbox Code Playgroud)
因此等价于简单地
(setq mouse-wheel-scroll-amount '(1))
Run Code Online (Sandbox Code Playgroud)
与后一种情况一样,修饰键没有覆盖。