[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
find-file-hook, recenter, scroll-conservatively and save-place
From: |
Gergely Risko |
Subject: |
find-file-hook, recenter, scroll-conservatively and save-place |
Date: |
Thu, 31 Jan 2019 10:46:59 +0100 |
User-agent: |
GNU Emacs with Gnus |
Hi,
I'm using save-place in my .emacs and I also set scroll-conservatively
to 101 with a scroll-margin of 3.
I like the smooth scrolling experience, but I would prefer to have new
files open at their previous save-place location recentered in their
window, not at the end. This works as intended with
scroll-conservatively 0, but breaks with scroll-conservatively 101.
I did the following digging:
- scroll-conservatively achieves its behavior in redisplay
asynchronously to find-file-hook, therefore any kind of dynamic
binding hackery of setting scroll-conservatively temporarily to 0
doesn't work for me in save-place,
- recenter refuses to run when the current window is not showing the
current buffer (makes sense),
- find-file-hook is ran with the new buffer as current, but the window
is not changed to the new buffer yet.
If I have this in find-file-hook:
(defun test ()
(message "foobar: %s %s" (current-buffer) (selected-window))
)
And I open new-file.c while standing in old-file.c, I receive this:
Debugger entered--returning value: "foobar: old-file.c #<window 85 on
new-file.c>"
My question: is there a better hook that we could use for save-place
restoration purposes?
I also looked into xref, and there the behavior is much better: the
(recenter) is included in the default configuration of
xref-after-jump-hook and it works in all the scenarios that I have
tried.
Thanks,
Gergely
- find-file-hook, recenter, scroll-conservatively and save-place,
Gergely Risko <=
- Re: find-file-hook, recenter, scroll-conservatively and save-place, Gergely Risko, 2019/01/31
- Re: find-file-hook, recenter, scroll-conservatively and save-place, martin rudalics, 2019/01/31
- Re: find-file-hook, recenter, scroll-conservatively and save-place, Juri Linkov, 2019/01/31