Буферы Emacs реализованы с использованием невидимого промежутка для ускорения вставки и удаления. Вставка работает путем заполнения части промежутка, а удаление добавляет к промежутку. Разумеется, это означает, что промежуток сначала должен быть перемещен в место вставки или удаления. Emacs перемещает промежуток только тогда, когда вы пытаетесь вставить или удалить. Вот почему ваша первая команда редактирования в одной части большого буфера после предыдущего редактирования в другой удаленной части иногда сопровождается заметной задержкой.
Этот механизм работает невидимо, и код Lisp никогда не должен зависеть от текущего местоположения промежутка, но эти функции доступны для получения информации о состоянии промежутка.
Эта функция возвращает текущее положение промежутка в текущем буфере.
Эта функция возвращает текущий размер промежутка в текущем буфере.