Дробная вертикальная прокрутка
Дробная вертикальная прокрутка означает сдвиг текста в окне вверх или вниз на заданное целое или дробное число строк. Emacs использует её, например, для изображений и экранных строк, высота которых превышает высоту окна. У каждого окна есть позиция вертикальной прокрутки — число, которое никогда не бывает меньше нуля. Оно задаёт, насколько нужно поднять содержимое окна при его отображении. Поднятие содержимого окна обычно приводит к тому, что все или часть одних строк исчезают за верхним краем, а все или часть других строк появляются внизу. Обычно это значение равно нулю.
Позиция вертикальной прокрутки измеряется в единицах нормальной высоты строки, то есть высоты шрифта по умолчанию. Таким образом, значение .5 означает, что содержимое окна будет прокручено вверх на половину нормальной высоты строки. Значение 3.3 означает, что содержимое окна будет прокручено вверх более чем на три нормальные высоты строки.
То, какую долю строки или сколько строк охватывает вертикальная прокрутка, зависит от содержимого строк. Значение .5 может прокрутить за пределы экрана строку очень малой высоты, а значение 3.3 — прокрутить лишь часть высокой строки или изображения.
- Функция: window-vscroll &optional window pixels-p
-
Эта функция возвращает текущую позицию вертикальной прокрутки window. По умолчанию window — выбранное окно. Если pixels-p не равен
nil, возвращаемое значение измеряется в пикселях, а не в единицах нормальной высоты строки.(window-vscroll) ⇒ 0
- Функция: set-window-vscroll window lines &optional pixels-p preserve-vscroll-p
-
Эта функция задаёт для window позицию вертикальной прокрутки, равную lines. Если window равен
nil, используется выбранное окно. Аргумент lines должен быть равен нулю или быть положительным; в противном случае он считается равным нулю.Фактическая позиция вертикальной прокрутки всегда должна соответствовать целому числу пикселей, поэтому указанное вами значение округляется соответствующим образом.
Возвращаемое значение — результат этого округления.
(set-window-vscroll (selected-window) 1.2) ⇒ 1.13Если pixels-p не равен
nil, lines задаёт число пикселей. В этом случае возвращаемое значение равно lines.Обычно вертикальная прокрутка не применяется к окнам, которые не являются
minibuffer-scroll-windowили выбранным окном, когда изменяется размер мини-буфера (см. Окна мини-буфера). Это «замороженное» поведение отключается, если параметр preserve-vscroll-p не равенnil, что означает, что вертикальная прокрутка задаётся обычным образом.
- Переменная: auto-window-vscroll
Если эта переменная не равна
nil, функцииline-move,scroll-upиscroll-downбудут автоматически изменять позицию вертикальной прокрутки, чтобы прокручивать строки отображения, высота которых превышает высоту окна, например при наличии больших изображений.
Copyright © 1990-1996, 1998-2026 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Vertical-Scrolling.html