29.19 Окна и точка

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

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 останется позади вставленного текста.

Функция: set-window-cursor-type window type

Эта функция устанавливает форму курсора для window. Эта настройка имеет приоритет над переменной cursor-type, и type имеет тот же формат, что и значение этой переменной. См. Параметры курсора. Если window равно nil, это означает установку типа курсора для выбранного окна.

Начальное значение для новых окон — t, что означает уважение локального для буфера значения cursor-type. Значение, установленное этой функцией, сохраняется между буферами, отображаемыми в window, поэтому set-window-buffer не сбрасывает его. См. Буферы и окна.

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

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