如何在GNU Emacs中关闭翻转卷?

如何在GNU Emacs中关闭翻转卷?,emacs,scroll,Emacs,Scroll,当我在GNU Emacs(24)中打开的文件(缓冲区)的行数少于当前窗口(帧)中显示的行数时,默认情况下,我可以使用滚动条向下滚动,并使顶部的行向上消失(“过滚动”) 当整个缓冲区显示在帧中时,如何关闭此功能,使我无法滚动 我可以打补丁,但是一个更优雅的解决方案会更好。您需要添加 (setq下一行添加换行符nil) 到您的init文件。AFAIK,您当前无法执行此操作(当然,您可能可以将其混在一起)。做得好可能会耗费大量CPU时间,但更重要的是,实现这一“功能”的工作量似乎比人们习惯它并发现它根

当我在GNU Emacs(24)中打开的文件(缓冲区)的行数少于当前窗口(帧)中显示的行数时,默认情况下,我可以使用滚动条向下滚动,并使顶部的行向上消失(“过滚动”)

当整个缓冲区显示在帧中时,如何关闭此功能,使我无法滚动

我可以打补丁,但是一个更优雅的解决方案会更好。

您需要添加

(setq下一行添加换行符nil)


到您的init文件。

AFAIK,您当前无法执行此操作(当然,您可能可以将其混在一起)。做得好可能会耗费大量CPU时间,但更重要的是,实现这一“功能”的工作量似乎比人们习惯它并发现它根本不是问题要多。因此,还没有人费心为它编写补丁。

现在可以通过设置变量
滚动条调整拇指部分来修改滚动条的行为(出于我的目的,设置为
nil
),以下是文档:

scroll-bar-adjust-thumb-portion is a variable defined in `C source code'.
Its value is nil
Original value was t

Documentation:
Adjust thumb for overscrolling for Gtk+ and MOTIF.
Non-nil means adjust the thumb in the scroll bar so it can be dragged downwards
even if the end of the buffer is shown (i.e. overscrolling).
Set to nil if you want the thumb to be at the bottom when the end of the buffer
is shown.  Also, the thumb fills the whole scroll bar when the entire buffer
is visible.  In this case you can not overscroll.

[...] version 24.4 of Emacs.

与此提交一起引入:。

否,这不会关闭overscroll。要了解我的意思,请打开一个新的emacs,转到scratch缓冲区并向下拖动滚动条-前三行/四行向上滚动。将next line add newlines设置为nil不会改变这一点(另外,默认值为nil)。非常正确,很抱歉误解了您的问题。我已经澄清了问题,提到使用滚动条滚动。您可以禁用滚动条;-)@塔斯:那么我没有很好的视觉测量缓冲区有多长…:-)一个完整显示的小文件会导致一个不到100%高的滚动条,这让我的眼睛感到困惑——它与我生活中的任何其他滚动条都不同。修复这个问题(从2003年和2009年emacs-devel中对线程的研究来看)似乎不是一件容易的事,所以我希望可以通过关闭overscroll来解决这个问题。@asjo,实际上这很容易修复,但只能通过引入其他缺点来解决。例如,通过使用另一个工具箱,或者在拖动时使拇指变小。当鼠标拖动滚动条时,会发生什么对我来说无关紧要,我几乎完全使用它来测量缓冲区的大小(就像我使用滚动条的所有其他程序一样(我不使用vim:-))。我已经在本地Emacs中修补了gtkutil.c以删除*30的东西,但我认为,如果通过配置可以实现同样的效果,那就更好了。不过,我不知道正确的方法是什么(欢迎使用指针!)我现在制作了一个小补丁,使我的问题中提到的补丁的代码块根据变量而可选: