下一行自动滚动的问题

时间:2011-08-04 13:46:44

标签: emacs

我遇到了在emacs中使用下一行进行自动滚动的问题。当我到达屏幕的边缘 http://i.stack.imgur.com/lfqEL.png 有时我不会滚动下一行,指针指向CURRENT屏幕的中心,而不是NEXT屏幕。 http://i.stack.imgur.com/FPbuC.png  (所以,如果我持有C-n指针将无休止地通过此屏幕运行)

我使用前锋获得相同的内容,有时使用前向页面。我没有得到与前一行自动滚动相同的功能,它运行正常。

我不知道为什么。我只注意到,当我有更长的行,并且屏幕被垂直分割时,这个事情发生得非常快(Cx 3 Cx 3,从我的1000行开始滚动.emasc文件是重现这个bug的快速方法)

Emacs -Q,(setq truncate-lines nil)没有它。 Emacs,(setq truncate-lines t)也没有。

如果您对可能导致此问题的原因一无所知,请回复。

2 个答案:

答案 0 :(得分:1)

此问题的一个潜在来源似乎是设置scroll-conservatively变量。

http://groups.google.com/group/gnu.emacs.help/browse_thread/thread/0a7a9c730c037d57

  
    

我注意到,当向下移动大文件时,有时会     光标将从屏幕底部跳到中间。

         

知道为什么会在某些时候发生这种情况?

  
     

因为Emacs的重新显示无法与滚动保持一致。之前   23.1,滚动保守地设置为一个大值,Emacs永远不会   跳下;现在它不会这样做,但有时会失败。我觉得   相关的ChangeLog条目就是这个:

     

2008-10-27 Chong Yidong

    * xdisp.c (try_scrolling): When computing the distance from the
    scroll margin to PT, try moving some distance past the window
    bottom before giving up.

Juanma 

答案 1 :(得分:1)

使用eval-region 2小时后(这个问题不容易重现,带有(next-line) (sit-for 0.01)的macro / elisp没有产生任何影响,所以我每次都通过持有Cn测试它,使用eval-region)的二进制搜索方法

所以答案是:

http://www.emacswiki.org/emacs/HighlightParentheses

*scratch*中对此进行评估,使用emacs -Q

启动emacs
(setq-default truncate-lines nil)
(setq truncate-partial-width-windows nil)
(add-to-list 'load-path "~/my_path_to_highlight-parentheses_script/")
(require 'highlight-parentheses)

使用长行创建一些缓冲区并使用C-x 3 C-u 5 0 C-x }然后C-x o M-x highlight-parentheses-mode缩小它,并按住C-n是重现错误的方法。

我用亮点括号注释了所有相对的东西,并且bug消失了。我想,我应该找到一种方法告诉开发人员这个错误。