Spec-Zone.ru › Elisp

Корректировка позиции после команд

Если последовательность текста имеет свойство 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API