我如何使Emacs鼠标滚动更慢更平滑?

当我使用鼠标滚轮滚动Emacs时,它每次滚动5行,我认为这太多了 – 我在哪里设置一个新的值?

另外,当我用鼠标(滚轮或滚动条)在Emacs中滚动时,光标跳转到可见的屏幕区域内 – 有没有办法覆盖这个行为,使它停留在它所在的行上,即使它走出屏幕? 换句话说,我不希望新滚动的符号出现改变的位置。

任何关于如何查看代码的一些远程部分然后很快返回到原来的位置的build议也是受欢迎的。

您可以通过mouse-wheel-scroll-amount (mwheel.el)来控制数量。

编辑:例如一次添加(setq mouse-wheel-scroll-amount '(1 ((shift) . 1) ((control) . nil)))到您的.emacs。

我也有(setq mouse-wheel-progressive-speed nil)我的.emacs我认为是更好的行为。

我使用面包屑在缓冲区或所有缓冲区周围留下踪迹。

放下面包屑,看看你想要什么,然后跳回面包屑。 以下是我所做的事情,FWIW:

 (global-set-key [(f6)] 'bc-set) (global-set-key [(shift f6)] 'bc-list) (global-set-key [(control f6)] 'bc-previous) (global-set-key [(meta f6)] 'bc-next) (global-set-key [(shift control f6)] 'bc-local-previous) (global-set-key [(shift meta f6)] 'bc-local-next) 

希望有所帮助。

在当前观点之外的某个地方存在“点”是不可能的; 所有点移动命令也移动显示。 我认为这是emacs所做的一个基本假设。

我想你最后想要的东西 – 偷看到远程部分并返回 – 可以用寄存器来完成:

这可以节省您在寄存器A中的位置:

Cx r A

这恢复寄存器A的位置:

Cx rj A

如果你这样做了很多,我build议绑定这些东西略less冗长:)

您可以使用一些书签解决scheme或registry,而且还可以使用内置标记和标记 –

 (default binding) C-Space to set mark (push a mark in mark ring) Cu C-Space to pop a mark off the ring; repeat this a few more time should get you where you like to be 

或者如果您没有突出显示区域,或者您不介意看到突出显示,

 Cx Cx (exchange-point-and-mark) switch between you current point and your previous mark. 

任何关于如何查看代码的一些远程部分然后很快返回到原来的位置的build议也是受欢迎的。

Bob Glickstein的“编写GNU Emacs扩展”第3章构build了一个unscroll函数(返回到scroll-command堆栈中的指定位置)作为编程示例。

代码在线显示,但是如果使用该代码, 则会 报告与ECB的冲突 。

使用易于使用的易于使用的自动创build书签 – 书签+ 。 只需按一个键即可创build或删除 – 与设置标记一样简单。 他们可以是持久的或临时的。 他们可以自动突出显示,如果你喜欢(边缘或线)。

这是我的设置:

 (setq mouse-wheel-scroll-amount'(0.07))
 (setq鼠标滚轮渐进速度零)
 (setq ring-bell-function'忽略)