From: "Drew Adams" <drew.adams@oracle.com>
To: <emacs-devel@gnu.org>
Subject: RE: recenter-top-bottom
Date: Mon, 12 Nov 2007 00:50:45 -0800 [thread overview]
Message-ID: <BNELLINCGFJLDJIKDGACIEMACEAA.drew.adams@oracle.com> (raw)
In-Reply-To: <BNELLINCGFJLDJIKDGACCEMACEAA.drew.adams@oracle.com>
> So I think your first suggestion is better, and I am still thinking
> of maybe installing it. If people are very enthusiastic about
> your second suggestion, I will say yes to it.
Just to make it easier for people who might want to try both and compare,
here again are the two definitions. Each is a possible alternative binding
for `C-l'. (I've added the `scroll-conservatively' feature to #1, as well as
#2.)
(defun recenter-top-bottom-1 (&optional arg)
"Move current line to window center, top, and bottom, successively.
With prefix ARG, move current line to window-line ARG.
Top and bottom destinations are actually `scroll-conservatively' lines
from true top and bottom."
(interactive "P")
(cond ((and (eq this-command last-command) (not arg))
(setq this-command 'recenter-top-bottom-top)
(recenter scroll-conservatively))
((and (eq 'recenter-top-bottom-top last-command) (not arg))
(setq this-command 'recenter-top-bottom-bottom)
(recenter (1- (- scroll-conservatively))))
(t (recenter arg))))
(defun recenter-top-bottom-2 (&optional arg)
"Move current line to line ARG, window center, top, or bottom.
With a prefix argument, this is the same as `recenter':
With numeric prefix ARG, move current line to window-line ARG.
With plain `C-u', move current line to window center.
Otherwise, the window starting position determines the next position:
If in the top third, move to bottom.
If in middle third, move to top.
If in bottom third, move tocenter.
Top and bottom destinations are actually `scroll-conservatively' lines
from true top and bottom."
(interactive "P")
(cond (arg (recenter arg))
(t
(let* ((top (1+ (count-lines 1 (window-start))))
(bottom (1+ (count-lines 1 (window-end))))
(current (1+ (count-lines 1 (point))))
(total (window-height)))
(cond ((< (- current top) (/ total 3))
(recenter (1- (- scroll-conservatively))))
((< (- bottom current) (/ total 3)) (recenter '(4)))
(t (recenter scroll-conservatively)))))))
next prev parent reply other threads:[~2007-11-12 8:50 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-07 13:16 recenter-top-bottom Alan Mackenzie_JWA
2007-11-07 14:09 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-08 4:42 ` recenter-top-bottom Richard Stallman
2007-11-11 20:16 ` recenter-top-bottom Drew Adams
2007-11-11 21:47 ` recenter-top-bottom Juri Linkov
2007-11-11 22:38 ` recenter-top-bottom Drew Adams
2007-11-11 22:59 ` recenter-top-bottom Juri Linkov
2007-11-11 23:06 ` recenter-top-bottom Drew Adams
2007-11-12 0:12 ` recenter-top-bottom Bastien
2007-11-11 23:56 ` recenter-top-bottom Drew Adams
2007-11-12 4:56 ` recenter-top-bottom Bastien
2007-11-12 8:33 ` recenter-top-bottom Drew Adams
2007-11-12 13:01 ` recenter-top-bottom Bastien
2007-11-12 13:06 ` recenter-top-bottom Bastien
2007-11-12 12:06 ` recenter-top-bottom Robert J. Chassell
2007-11-12 13:05 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-12 5:59 ` recenter-top-bottom Richard Stallman
2007-11-12 7:17 ` recenter-top-bottom Bastien
2007-11-12 8:34 ` recenter-top-bottom Drew Adams
2007-11-12 8:50 ` Drew Adams [this message]
2007-11-12 13:15 ` recenter-top-bottom Bastien
2007-11-12 21:57 ` recenter-top-bottom Juri Linkov
2007-11-12 23:00 ` recenter-top-bottom Drew Adams
2007-11-13 13:35 ` recenter-top-bottom Bastien
2007-11-13 5:10 ` recenter-top-bottom Richard Stallman
2007-11-14 21:57 ` recenter-top-bottom Drew Adams
2007-11-14 22:07 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-14 22:51 ` recenter-top-bottom Bastien
2007-11-14 23:51 ` recenter-top-bottom Juri Linkov
2007-11-15 0:23 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-15 0:58 ` recenter-top-bottom Drew Adams
2007-11-15 8:36 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-15 13:07 ` recenter-top-bottom Richard Stallman
2007-11-15 15:16 ` recenter-top-bottom Stefan Monnier
2007-11-15 15:52 ` recenter-top-bottom Drew Adams
2007-11-16 4:29 ` recenter-top-bottom Richard Stallman
2007-11-16 18:51 ` recenter-top-bottom Stefan Monnier
2007-12-01 13:55 ` recenter-top-bottom Johan Bockgård
2007-12-01 14:28 ` recenter-top-bottom Leo
2007-12-01 15:48 ` recenter-top-bottom Eli Zaretskii
2007-12-01 18:33 ` recenter-top-bottom Leo
2007-12-01 21:07 ` recenter-top-bottom Eli Zaretskii
2007-12-01 23:41 ` recenter-top-bottom Richard Stallman
2007-12-01 16:22 ` recenter-top-bottom Drew Adams
2007-12-01 23:41 ` recenter-top-bottom Richard Stallman
2007-12-02 0:48 ` scroll-conservatively default (was: Re: recenter-top-bottom) Dan Nicolaescu
2007-12-02 1:21 ` scroll-conservatively default Johan Bockgård
2007-12-02 3:58 ` Eli Zaretskii
2007-12-02 4:52 ` Drew Adams
2007-12-03 21:20 ` Dan Nicolaescu
2007-12-04 4:13 ` Eli Zaretskii
2007-12-04 7:25 ` Dan Nicolaescu
2007-12-04 21:10 ` Eli Zaretskii
2007-12-05 4:29 ` Dan Nicolaescu
2007-12-05 2:57 ` Richard Stallman
2007-12-05 4:32 ` Dan Nicolaescu
2007-12-04 9:28 ` Leo
2007-12-04 21:14 ` Eli Zaretskii
2007-12-06 7:49 ` Miles Bader
2007-12-06 11:10 ` David Kastrup
2007-12-06 11:36 ` Andreas Schwab
2007-12-06 21:43 ` Richard Stallman
2007-12-07 9:46 ` Andreas Schwab
2007-12-06 21:14 ` Eli Zaretskii
2007-12-06 22:13 ` David Kastrup
2007-12-07 3:01 ` Miles Bader
2007-12-02 0:47 ` recenter-top-bottom Johan Bockgård
2007-12-02 4:53 ` recenter-top-bottom Drew Adams
[not found] <OF7E920891.667E3D64-ONC125738C.0058D24D-C125738C.00587C7B@philips.com>
2007-11-07 17:24 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-07 20:44 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-07 21:54 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-08 17:39 ` recenter-top-bottom Richard Stallman
-- strict thread matches above, loose matches on Subject: below --
2007-11-06 16:53 recenter-top-bottom Drew Adams
2007-11-06 17:02 ` recenter-top-bottom Lennart Borgman (gmail)
2007-11-07 7:55 ` recenter-top-bottom Richard Stallman
2007-11-07 9:25 ` recenter-top-bottom Tassilo Horn
2007-11-08 0:41 ` recenter-top-bottom Juri Linkov
2007-11-11 8:27 ` recenter-top-bottom Alan Mackenzie
2007-11-11 23:54 ` recenter-top-bottom Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BNELLINCGFJLDJIKDGACIEMACEAA.drew.adams@oracle.com \
--to=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).