Корректировка позиции после команд
Если последовательность текста имеет свойство display или composition либо невидима, курсор может отображаться в одном и том же месте на экране при нескольких позициях в буфере. Поэтому после завершения команды и возврата к циклу команд, если точка находится в такой последовательности, цикл команд обычно перемещает точку, чтобы сделать эту последовательность фактически неосязаемой.
Эта корректировка точки подчиняется следующим общим правилам: во-первых, корректировка не должна изменять общее направление команды; во-вторых, если команда переместила точку, корректировка должна по возможности переместить и курсор; в-третьих, Emacs предпочитает границы неосязаемой последовательности, а среди них — нелипкие, чтобы вновь вставленный текст был виден.
Команда может отключить эту функцию, установив переменную disable-point-adjustment:
- Переменная: disable-point-adjustment
-
Если при возврате команды к циклу команд эта переменная не равна
nil, цикл команд не проверяет эти свойства текста и не перемещает точку за пределы последовательностей, имеющих такие свойства.Перед каждой командой цикл команд устанавливает для этой переменной значение
nil, поэтому, если команда изменит её, это изменение действует только для этой команды.
- Переменная: global-disable-point-adjustment
Если установить для этой переменной значение, отличное от
nil, функция перемещения точки за пределы таких последовательностей будет полностью отключена.
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/Adjusting-Point.html