F: Gibt es eine Möglichkeit, am oberen und unteren Rand eines Fensters unterschiedliche Bildlaufränder festzulegen?
Die Variable scroll-margin(im C-Quellcode definiert) legt fest, wie viele Textzeilen Emacs mindestens oben und unten in einem Fenster anzeigt:
Anzahl der Randlinien am oberen und unteren Rand eines Fensters. Zentrieren Sie das Fenster neu, wenn der Punkt innerhalb dieser vielen Zeilen oben oder unten im Fenster liegt.
Ich möchte es scroll-marginfür den unteren Rand des Fensters verwenden, möchte es aber nicht oben (z. B. einen positiven Wert unten, aber 0 oben). Gibt es eine Möglichkeit dazu?
(top . bottom)für zuzulassen scroll-margin.
window-scroll-functionsHook spielen (für den zwei Argumente erforderlich sind ) und einen recenterBefehl in eine an diesen Hook angehängte Funktion (setq scroll-conservatively 101)einfügen. Anschließend verwenden Sie die Einstellung - im Wesentlichen definieren Sie, wann eine erneute Zentrierung erfolgt, und deaktivieren das integrierte Auto -scrollen. So etwas wie(when (and (>= (point) (window-end nil t)) (not (pos-visible-in-window-p (point) (get-buffer-window (current-buffer) (selected-frame))))) (recenter))
scroll-marginist sie nicht das richtige Werkzeug für den Job. Möglicherweise müssen Sie eine Funktion aktivieren, umpost-command-hookzu bestimmen, ob das Fenster gescrollt werden soll.