Разрыв буфера
Буферы Emacs реализованы с использованием невидимого разрыва для ускорения вставки и удаления. Вставка выполняется путем заполнения части разрыва, а удаление увеличивает разрыв. Конечно, это означает, что разрыв должен быть сначала перемещен в место вставки или удаления. Emacs перемещает разрыв только при попытке вставки или удаления. Вот почему ваша первая команда редактирования в одной части большого буфера после предыдущего редактирования в другой удаленной части иногда сопровождается заметной задержкой.
Этот механизм работает незаметно, и код Lisp никогда не должен затрагиваться текущим положением разрыва, но эти функции доступны для получения информации о состоянии разрыва.
- Функция: gap-position
Эта функция возвращает текущее положение разрыва в текущем буфере.
- Функция: gap-size
Эта функция возвращает текущий размер разрыва текущего буфера.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Buffer-Gap.html