D: c'è un modo per impostare diversi margini di scorrimento nella parte superiore e inferiore di una finestra?
La variabile scroll-margin(definita nel codice sorgente C) imposta il numero di righe di testo che Emacs visualizza almeno nella parte superiore e inferiore di una finestra:
Numero di linee di margine nella parte superiore e inferiore di una finestra. Rientra la finestra ogni volta che il punto rientra in queste tante righe nella parte superiore o inferiore della finestra.
Mi piacerebbe usare scroll-marginper il fondo della finestra, ma non lo voglio in alto (ad esempio, un valore positivo in fondo, ma 0 in alto). c'è un modo per farlo?
(top . bottom)per scroll-margin.
window-scroll-functionshook (che accetta due argomenti) e mettere un recentercomando in una funzione collegata a quell'hook e quindi usare un'impostazione di (setq scroll-conservatively 101)- in sostanza, definisci quando si verifica il recente e disattiva l'auto incorporata -scorrere. Qualcosa di simile(when (and (>= (point) (window-end nil t)) (not (pos-visible-in-window-p (point) (get-buffer-window (current-buffer) (selected-frame))))) (recenter))
scroll-marginnon è lo strumento giusto per il lavoro. Potrebbe essere necessario inserire alcune funzionipost-command-hookper determinare se scorrere la finestra.