Вставка означает добавление нового текста в буфер. Вставляемый текст помещается в позицию point—между символом перед point и символом после point. Одни функции вставки оставляют point перед вставленным текстом, а другие оставляют его после. Мы называем первую вставку после point, а вторую — перед point.
Вставка перемещает маркеры, расположенные в позициях после точки вставки,
так чтобы они оставались вместе с окружающим текстом (см. Маркеры).
Когда маркер указывает на место вставки, вставка может как перемещать,
так и не перемещать маркер в зависимости от типа вставки маркера
(см. Типы вставки маркеров). Некоторые специальные функции, например
insert-before-markers, перемещают все такие маркеры в точку после
вставленного текста независимо от типа вставки маркеров.
Функции вставки сигнализируют об ошибке, если текущий буфер защищён от записи (см. Буферы только для чтения) или если они вставляют в защищённый от записи текст (см. Свойства со специальным смыслом).
Эти функции копируют текстовые символы из строк и буферов вместе с их свойствами. Вставленные символы имеют точно такие же свойства, как и символы, из которых они были скопированы. Напротив, символы, заданные как отдельные аргументы (не являющиеся частью строки или буфера), наследуют свои текстовые свойства от соседнего текста.
Функции вставки преобразуют текст из однобайтового в многобайтовый для вставки в многобайтовый буфер и наоборот—если текст происходит из строки или буфера. Однако они не преобразуют однобайтовые коды символов 128–255 в многобайтовые символы, даже если текущий буфер является многобайтовым. См. Преобразование представлений текста.
Эта функция вставляет строки и/или символы args в текущий буфер
в позиции point, перемещая point вперёд. Иными словами, она вставляет
текст перед point. Об ошибке сигнализируется, если не все
args являются строками или символами. Возвращаемое значение — nil.
Эта функция вставляет строки и/или символы args в текущий буфер
в позиции point, перемещая point вперёд. Об ошибке сигнализируется,
если не все args являются строками или символами. Возвращаемое
значение — nil.
Эта функция отличается от других функций вставки тем, что она перемещает маркеры, изначально указывающие на точку вставки, в точку после вставленного текста. Если оверлей начинается в точке вставки, вставленный текст оказывается за пределами оверлея; если непустой оверлей заканчивается в точке вставки, вставленный текст попадает внутрь этого оверлея.
Эта команда вставляет count экземпляров character в текущий буфер перед point. Аргумент count должен быть целым числом, а character должен быть символом.
При интерактивном вызове эта команда запрашивает character, используя его имя в Юникоде или кодовую точку. См. Вставка текста в Руководстве по GNU Emacs.
Эта функция не преобразует однобайтовые коды символов 128–255 в многобайтовые символы, даже если текущий буфер является многобайтовым. См. Преобразование представлений текста.
Если inherit не равен nil, вставленные символы наследуют
липкие текстовые свойства от двух символов до и после точки вставки.
См. Липкость текстовых свойств.
Эта функция вставляет часть буфера from-buffer-or-name в текущий
буфер перед point. Вставляемый текст — это область между
start (включительно) и end (исключительно). (Эти
аргументы по умолчанию равны началу и концу доступной части
этого буфера.) Функция возвращает nil.
В этом примере форма выполняется, когда буфер ‘bar’ является текущим. Предполагается, что буфер ‘bar’ изначально пуст.
---------- Буфер: foo ---------- We hold these truths to be self-evident, that all ---------- Буфер: foo ----------
(insert-buffer-substring "foo" 1 20)
⇒ nil
---------- Буфер: bar ----------
We hold these truth∗
---------- Буфер: bar ----------
Эта функция подобна insert-buffer-substring, за исключением того,
что она не копирует текстовые свойства.
Эта функция подобна insert-buffer-substring, но работает в обратном
направлении: текст копируется из текущего буфера в
to-buffer. Блок текста копируется в текущую точку в
to-buffer, и point (в этом буфере) перемещается после
скопированного текста. Если start/end равны nil,
копируется весь текст текущего буфера.
См. Липкость текстовых свойств о других функциях вставки, которые наследуют текстовые свойства от соседнего текста в дополнение к самой вставке. Пробельные символы, вставляемые функциями отступов, также наследуют текстовые свойства.