T: apakah ada cara untuk mengatur margin gulir yang berbeda di bagian atas dan bawah jendela?
Variabel scroll-margin
(didefinisikan dalam kode sumber C) menetapkan berapa banyak baris teks yang Emacs tampilkan, minimal, di bagian atas dan bawah jendela:
Jumlah garis margin di bagian atas dan bawah jendela. Masukkan kembali jendela kapan pun titik masuk dalam banyak baris ini di bagian atas atau bawah jendela.
Saya ingin menggunakan scroll-margin
untuk bagian bawah jendela, tetapi tidak ingin itu di bagian atas (misalnya, nilai positif di bagian bawah, tetapi 0 di bagian atas). Apakah ada cara untuk melakukannya?
scroll-margin
bukan alat yang tepat untuk pekerjaan itu. Anda mungkin memerlukan beberapa fungsi untuk digunakanpost-command-hook
untuk menentukan apakah akan menggulir jendela.(top . bottom)
untukscroll-margin
.window-scroll-functions
kail (yang mengambil dua argumen) dan menempatkanrecenter
perintah ke dalam fungsi yang melekat pada kail itu dan kemudian menggunakan pengaturan(setq scroll-conservatively 101)
- pada dasarnya, Anda menentukan kapan recentering terjadi dan mematikan built-in auto -kontrol. Sesuatu seperti(when (and (>= (point) (window-end nil t)) (not (pos-visible-in-window-p (point) (get-buffer-window (current-buffer) (selected-frame))))) (recenter))
Jawaban:
Berikut ini berfungsi untuk saya:
Perhatikan bahwa ini secara teoritis tidak efisien, tetapi kinerja pada komputer saya yang lumpuh tampaknya tidak terpengaruh.
sumber