From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Spencer Baugh Newsgroups: gmane.emacs.help Subject: Re: Make scroll-{up, down} move point to {start, end} of newly visible text Date: Tue, 01 Aug 2023 14:09:47 -0400 Message-ID: References: <83mszb0w9l.fsf@gnu.org> <83il9y22e8.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4834"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:3CD42D11qEBIsINRKW/QhfBO9zQ= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Aug 01 20:10:38 2023 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qQtpO-0000zc-Et for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 01 Aug 2023 20:10:38 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qQtoo-0003F8-NT; Tue, 01 Aug 2023 14:10:02 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQton-0003CQ-6r for help-gnu-emacs@gnu.org; Tue, 01 Aug 2023 14:10:01 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qQtol-0002UW-SM for help-gnu-emacs@gnu.org; Tue, 01 Aug 2023 14:10:00 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1qQtoi-00009B-5C for help-gnu-emacs@gnu.org; Tue, 01 Aug 2023 20:09:56 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:144538 Archived-At: Eli Zaretskii writes: >> From: Spencer Baugh >> Date: Tue, 01 Aug 2023 10:50:48 -0400 >> >> Eli Zaretskii writes: >> >> > If by "new text start" you mean the first line that was not visible in >> > the window before C-v, then set scroll-margin to the value of >> > next-screen-context-lines, and then Emacs will put point at that first >> > new line. >> > >> > Is that what you want? >> >> Yes, that's exactly what I mean and want! Perfect, and very clever! >> That indeed moves point to the division between old and new text! >> >> Ah, but there's a missing feature... I'd like it to also work as I >> described when I use scrolling with a prefix argument. That is, it >> should move point to the division between old and new text even then. >> >> So M-5 C-v would move point to 5 lines from the end of the buffer. >> scroll-margin might interfere, but I still would want point to be at the >> division between old and new text. > > When you scroll by a small number of lines, Emacs generally doesn't > move point at all, unless it has to. And in that case, what exactly > is "new text"? it's basically undefined. Yes, that's fair. Probably I don't really need this. An issue with a solution based on scroll-margin is that scroll-margin applies even when at the end of the buffer. I'd like to be able to have the end of the buffer at the end of the window, to maximize the amount of content on-screen at a time. In particular comint buffers, like async-shell-command and compilation and shell-mode, become quite ugly with scroll-margin on, since in such buffers one is generally always at the end of the buffer. Is there a way to teach scroll-margin to not do automatic scrolling when point is near the end of the buffer? > IOW, scrolling by single lines or a small number of lines is very > similar to scrolling with down-arrow or up-arrow, and those already > behave like you want. So why not use arrows instead? With the arrows I would have to move point to the top or end of the screen before scrolling, which is annoying. Also, arrows move point, and it might be nice to be able to scroll without moving point. scroll-up-line and scroll-down-line would work well for me, but they don't have key bindings by default. If they did, I'd use them. Maybe we should add some? I don't know what good bindings would be.