Команды вставки на уровне пользователя
В этом разделе описываются команды высокого уровня для вставки текста, предназначенные в первую очередь для пользователя, но полезные и в программах Lisp.
- Команда: insert-buffer from-buffer-or-name
Эта команда вставляет все доступное содержимое from-buffer-or-name (которое должно существовать) в текущий буфер после точки. Она оставляет метку после вставленного текста. Значение равно
nil.
- Команда: self-insert-command count &optional char
-
Эта команда вставляет символ char (последний набранный символ) count раз перед точкой и возвращает
nil. Большинство печатаемых символов связаны с этой командой. В обычном использованииself-insert-commandявляется наиболее часто вызываемой функцией в Emacs, но программы редко используют её, за исключением установки на ключевую карту.В интерактивном вызове count — это числовой префиксный аргумент.
Автоматическое вставление преобразует входной символ с помощью
translation-table-for-input. См. Преобразование символов.Эта команда вызывает
auto-fill-functionвсякий раз, когда это неnilи вставленный символ находится в таблицеauto-fill-chars(см. Автозаполнение).Эта команда выполняет расширение сокращений, если включен режим Abbrev, и вставленный символ не имеет синтаксиса словообразования. (См. Сокращения и Таблица классов синтаксиса.) Она также отвечает за вызов
blink-paren-function, когда вставленный символ имеет синтаксис закрывающей скобки (см. Мигание).Последнее, что делает эта команда, — выполнение хука
post-self-insert-hook. Это можно использовать, например, для автоматического переформатирования текста по мере набора. Если какая-либо функция в этом хуке должна действовать на область (см. Область), она должна убедиться, что режим удаления выделения (см. Удаление выделения в Руководстве по GNU Emacs) не удаляет область перед вызовом функцийpost-self-insert-hook. Для этого нужно добавить функцию, которая возвращаетnilвself-insert-uses-region-functions, специальный хук, который сообщает режиму удаления выделения, что он не должен удалять область.Не пытайтесь подставить своё определение
self-insert-commandвместо стандартного. Интерпретатор команд редактора обрабатывает эту функцию специально.
- Команда: newline &optional number-of-newlines interactive
-
Эта команда вставляет новые строки в текущий буфер перед точкой. Если указано number-of-newlines, вставляется столько символов новой строки. В интерактивном вызове number-of-newlines — это числовой префиксный аргумент.
Эта команда вызывает
self-insert-commandдля вставки новых строк, что может впоследствии разбить предыдущую строку, вызвавauto-fill-function(см. Автозаполнение). Обычноauto-fill-functionвставляет новую строку; таким образом, общий результат в данном случае — вставка двух новых строк в разных местах: одной в точке и другой ранее в строке.newlineне выполняет автозаполнение, если number-of-newlines не равноnil.Эта команда не выполняет хук
post-self-insert-hook, если не вызвана интерактивно или interactive не равноnil.Эта команда отступает влево, если это не ноль. См. Поля.
Возвращаемое значение —
nil.
- Переменная: overwrite-mode
Эта переменная контролирует, включен ли режим вставки. Значение должно быть
overwrite-mode-textual,overwrite-mode-binary, илиnil.overwrite-mode-textualуказывает режим вставки текста (обращается специально к новым строкам и табуляции), аoverwrite-mode-binary— режим вставки двоичных данных (обращается к новым строкам и табуляции как к любым другим символам).
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/Commands-for-Insertion.html