3

I usually use occur to make an index of the beginning of different things. When I jump to the occurrence, Occur shows the line in the middle of the buffer. How can I instruct occur to show the occurrence in the top of the buffer?

Thanks.

Drew
  • 75,699
  • 9
  • 109
  • 225
onlycparra
  • 207
  • 1
  • 8

1 Answers1

3

You can scroll the window in occur-mode-find-occurrence-hook such that point is at the top of the window:

(defun my-occur-recenter ()
  "Scroll point to the top of the window."
  (recenter 0))

(add-hook 'occur-mode-find-occurrence-hook #'my-occur-recenter)

Notes:

  1. The functions registered in occur-mode-find-occurrence-hook are called with point at the position of the selected occurence.
  2. recenter called with a non-negative argument adjusts the vscroll of the window such that point is located that many lines from the top line.
Tobias
  • 32,569
  • 1
  • 34
  • 75
  • hi, if the registered functions are *called with point*, how does it work without error if the function is parameterless like it is here? – Mustafa Aydın Mar 20 '23 at 06:55
  • 1
    @MustafaAydın They are not called with an argument but with point at the occurence. – Tobias Mar 20 '23 at 07:05