Spec-Zone.ru › Elisp

Окна и точка

Каждое окно имеет собственное значение точки (см. Точка), независимое от значения точки в других окнах, отображающих тот же буфер. Это делает его полезным для отображения одного буфера в нескольких окнах.

  • Точка окна устанавливается при первом создании окна; она инициализируется из точки буфера или из точки окна другого открытого на буфере окна, если такое окно существует.
  • Выбор окна устанавливает значение точки в его буфере со значения точки окна. И наоборот, отмена выбора окна устанавливает значение точки окна со значения точки буфера. Таким образом, при переключении между окнами, отображающими заданный буфер, значение точки для выбранного окна действует в буфере, а значения точек для других окон сохраняются в этих окнах.
  • Пока выбранное окно отображает текущий буфер, точка окна и точка буфера всегда перемещаются вместе; они остаются равными.

Emacs отображает курсор, по умолчанию как прямоугольный блок, в каждом окне в позиции точки этого окна. Когда пользователь переключается на другой буфер в окне, Emacs перемещает курсор этого окна в позицию точки в этом буфере. Если точное положение точки скрыто за некоторым элементом отображения, таким как строка отображения или изображение, Emacs отображает курсор непосредственно перед или после этого элемента отображения.

Функция: window-point &optional window

Эта функция возвращает текущее положение точки в window. Для невыбранного окна это значение, которое имела бы точка (в буфере этого окна), если бы это окно было выбрано. Значение по умолчанию для window — выбранное окно.

Когда window — выбранное окно, возвращаемое значение — значение точки в буфере этого окна. Строго говоря, было бы правильнее вернуть верхнеуровневое значение точки, вне любых save-excursion форм. Но это значение трудно найти.

Функция: set-window-point window position

Эта функция позиционирует точку в window в позиции position в буфере window. Она возвращает position.

Если window выбрано, это просто goto-char в буфере window.

Переменная: window-point-insertion-type

Эта переменная задаёт тип вставки маркера (см. Типы вставки маркеров) window-point. Значение по умолчанию — nil, поэтому window-point останется позади вставленного текста.

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/Window-Point.html

Spec-Zone.ru

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