Spec-Zone.ru › Elisp

Команды вставки на уровне пользователя

В этом разделе описываются команды высокого уровня для вставки текста, предназначенные в первую очередь для пользователя, но полезные и в программах 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

Spec-Zone.ru

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