В этом разделе описаны команды более высокого уровня для вставки текста, команды, предназначенные в первую очередь для пользователя, но полезные также в программах Lisp.
Эта команда вставляет все доступное содержимое
from-buffer-or-name (которое должно существовать) в текущий буфер
после курсора. Она оставляет маркер после вставленного текста. Значение
равно nil.
Эта команда вставляет символ 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. Вы можете использовать это для автоматического
переформатирования текста по мере его набора, например. Функции в этом хуке
могут использовать last-command-event (см. Информация из цикла команд)
для доступа к только что вставленному символу.
Если какая-либо функция в этом хуке должна действовать над регионом (см. Регион),
она должна убедиться, что режим Delete Selection (см. Delete Selection в Руководство GNU Emacs)
не удаляет регион до вызова функций post-self-insert-hook. Способ сделать это — добавить функцию, возвращающую
nil, в self-insert-uses-region-functions, специальный хук, который сообщает режиму Delete Selection,
что он не должен удалять регион.
Не пытайтесь заменить стандартную реализацию
self-insert-command собственной. Цикл команд редактора обрабатывает эту функцию
особым образом.
Эта команда вставляет символы новой строки в текущий буфер перед курсором. Если указано 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-textual, overwrite-mode-binary
или nil. overwrite-mode-textual указывает
текстовый режим перезаписи (обрабатывает символы новой строки и табуляции
особо), а overwrite-mode-binary указывает бинарный режим
перезаписи (обрабатывает символы новой строки и табуляции как любые другие
символы).