recenter-positions, that's not how gravity works!
28 Mar 2015Yesterday, I've added a new binding to swiper-map
: C-l will now call
swiper-recenter-top-bottom
.
The implementation is really easy, almost nothing to write home about:
(defun swiper-recenter-top-bottom (&optional arg)
"Call (`recenter-top-bottom' ARG) in `swiper--window'."
(interactive "P")
(with-selected-window swiper--window
(recenter-top-bottom arg)))
An interesting thing that I want to mention though is the customization of the default
recenter-top-bottom
behavior. This is the default one:
(setq recenter-positions '(middle top bottom))
And this is the logical one that I'm using:
(setq recenter-positions '(top middle bottom))
Try it out, and see if it makes sense to you. For me, when I've just jumped to a function
definition, which usually means that the point is on the first line of the function, the first
recenter position has to be top
, since that will maximize the amount of the function body that's
displayed on the screen.
Another use-case is when I'm reading an info or a web page. After a recenter to top, all that I have read is scrolled out of view, and I can continue from the top.