Вставка текста
Вставка означает добавление нового текста в буфер. Вставляемый текст помещается на позиции — между символом перед позицией и символом после позиции. Некоторые функции вставки оставляют позицию перед вставляемым текстом, в то время как другие — после. Мы называем первую вставку после позиции, а вторую — перед позицией.
Вставка перемещает маркеры, расположенные после точки вставки, так, чтобы они оставались вместе с окружающим текстом (см. Маркеры). Когда маркер указывает на место вставки, маркер может быть или не быть перемещен, в зависимости от типа вставки маркера (см. Типы вставки маркеров). Некоторые специальные функции, такие как 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-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Insertion.html