При создании нового маркера вы можете заставить его не указывать никуда, указывать на текущую позицию курсора, на начало или конец доступной части буфера, или на то же место, что и другой заданный маркер.
Следующие четыре функции возвращают маркеры с типом вставки
nil. См. Типы вставки маркеров.
Эта функция возвращает новый маркер, который никуда не указывает.
(make-marker)
⇒ #<маркер в пустом буфере>
Эта функция возвращает новый маркер, который указывает на текущую позицию
курсора в текущем буфере. См. Позиция. Для примера см.
copy-marker ниже.
Эта функция возвращает новый маркер, который указывает на начало доступной части буфера. Это будет начало буфера, если не включено сужение. См. Сужение.
Эта функция возвращает новый маркер, который указывает на конец доступной части буфера. Это будет конец буфера, если не включено сужение. См. Сужение.
Ниже приведены примеры этой функции и point-min-marker, показанные в
буфере, содержащем версию исходного файла для текста этой главы.
(point-min-marker)
⇒ #<маркер в 1 в markers.texi>
(point-max-marker)
⇒ #<маркер в 24080 в markers.texi>
(narrow-to-region 100 200)
⇒ nil
(point-min-marker)
⇒ #<маркер в 100 в markers.texi>
(point-max-marker)
⇒ #<маркер в 200 в markers.texi>
Если в качестве аргумента передается маркер, copy-marker возвращает
новый маркер, который указывает в то же место и в тот же буфер, что и
marker-or-integer. Если в качестве аргумента передается целое число,
copy-marker возвращает новый маркер, который указывает на позицию
marker-or-integer в текущем буфере.
Тип вставки нового маркера определяется аргументом insertion-type. См. Типы вставки маркеров.
(copy-marker 0)
⇒ #<маркер в 1 в markers.texi>
(copy-marker 90000)
⇒ #<маркер в 24080 в markers.texi>
Сигнализируется об ошибке, если marker не является ни маркером, ни целым числом.
Два различных маркера считаются равными (хотя не eq) друг другу, если они имеют одинаковую позицию и буфер, или если оба они никуда не указывают.
(setq p (point-marker))
⇒ #<маркер в 2139 в markers.texi>
(setq q (copy-marker p))
⇒ #<маркер в 2139 в markers.texi>
(eq p q)
⇒ nil
(equal p q)
⇒ t