Spec-Zone.ru › Elisp

Вставка текста

Вставка означает добавление нового текста в буфер. Вставляемый текст помещается в точке — между символом перед точкой и символом после точки. Некоторые функции вставки оставляют точку перед вставленным текстом, другие — после него. Первую разновидность мы называем вставкой после точки, а вторую — вставкой перед точкой.

При вставке маркеры, расположенные после точки вставки, перемещаются так, чтобы оставаться на месте относительно окружающего текста (см. Маркеры). Если маркер указывает на место вставки, он может переместиться или остаться на месте — в зависимости от типа вставки маркера (см. Типы вставки маркеров). Некоторые специальные функции, такие как insert-before-markers, перемещают все такие маркеры в точку после вставленного текста независимо от типа вставки маркеров.

Функции вставки сигнализируют об ошибке, если текущий буфер доступен только для чтения (см. Буферы, доступные только для чтения) или если они вставляют текст в область, доступную только для чтения (см. Свойства с особым значением).

Эти функции копируют символы текста из строк и буферов вместе со свойствами. Вставленные символы имеют точно такие же свойства, как и символы, из которых они были скопированы. Напротив, символы, заданные как отдельные аргументы, а не как часть строки или буфера, наследуют свойства текста от соседнего текста.

Функции вставки преобразуют однобайтовый текст в многобайтовый, чтобы вставить его в многобайтовый буфер, и наоборот — если текст взят из строки или буфера. Однако они не преобразуют однобайтовые коды символов от 128 до 255 в многобайтовые символы, даже если текущий буфер является многобайтовым. См. Преобразование представлений текста.

Функция: insert &rest args

Эта функция вставляет строки и/или символы args в текущий буфер в точке, перемещая точку вперёд. Иными словами, она вставляет текст перед точкой. Сигнализируется ошибка, если все аргументы args не являются строками или символами. Возвращаемое значение — nil.

Функция: insert-before-markers &rest args

Эта функция вставляет строки и/или символы args в текущий буфер в точке, перемещая точку вперёд. Сигнализируется ошибка, если все аргументы args не являются строками или символами. Возвращаемое значение — nil.

Эта функция отличается от других функций вставки тем, что перемещает маркеры, изначально указывавшие на точку вставки, в точку после вставленного текста. Если оверлей начинается в точке вставки, вставленный текст оказывается за пределами оверлея; если непустой оверлей заканчивается в точке вставки, вставленный текст оказывается внутри этого оверлея.

Команда: insert-char character &optional count inherit

Эта команда вставляет count экземпляров символа character в текущий буфер перед точкой. Аргумент count должен быть целым числом, а character должен быть символом.

При интерактивном вызове команда запрашивает character, используя его имя в Юникоде или кодовую точку. См. Вставка текста в Руководстве GNU Emacs.

Эта функция не преобразует однобайтовые коды символов от 128 до 255 в многобайтовые символы, даже если текущий буфер является многобайтовым. См. Преобразование представлений текста.

Если inherit не равно nil, вставленные символы наследуют липкие свойства текста от двух символов перед точкой вставки и после неё. См. Липкость свойств текста.

Функция: insert-buffer-substring from-buffer-or-name &optional start end

Эта функция вставляет часть буфера from-buffer-or-name в текущий буфер перед точкой. Вставляется текст из области между start (включительно) и end (не включая). (По умолчанию эти аргументы указывают на начало и конец доступной части этого буфера.) Эта функция возвращает nil.

В этом примере форма выполняется, когда текущим является буфер «bar». Предполагается, что буфер «bar» изначально пуст.

---------- Buffer: foo ----------
We hold these truths to be self-evident, that all
---------- Buffer: foo ----------
(insert-buffer-substring "foo" 1 20)
     ⇒ nil

---------- Buffer: bar ----------
We hold these truth∗
---------- Buffer: bar ----------
Функция: insert-buffer-substring-no-properties from-buffer-or-name &optional start end

Эта функция подобна insert-buffer-substring, за исключением того, что она не копирует свойства текста.

Функция: insert-into-buffer to-buffer &optional start end

Эта функция подобна insert-buffer-substring, но работает в противоположном направлении: текст копируется из текущего буфера в to-buffer. Блок текста копируется в текущую точку to-buffer, после чего точка (в этом буфере) перемещается за конец скопированного текста. Если start/end равны 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/Insertion.html

Spec-Zone.ru

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