Spec-Zone.ru › Elisp

Удаление текста

Удаление означает удаление части текста в буфере без сохранения его в кольце обмена (см. Кольцо обмена). Удаленный текст нельзя восстановить, но его можно вставить заново с помощью механизма отмены (см. Отмена). Некоторые функции удаления сохраняют текст в кольце обмена в некоторых особых случаях.

Все функции удаления работают с текущим буфером.

Команда: erase-buffer

Эта функция удаляет весь текст текущего буфера (не только доступную часть), оставляя его пустым. Если буфер только для чтения, он сигнализирует об ошибке buffer-read-only; если часть текста в нем только для чтения, он сигнализирует об ошибке text-read-only. В противном случае он удаляет текст без запроса подтверждения. Он возвращает nil.

Обычно удаление большого количества текста из буфера препятствует дальнейшему автоматическому сохранению этого буфера, так как он уменьшился. Однако erase-buffer не делает этого, идея в том, что будущий текст не имеет прямого отношения к предыдущему тексту, и его размер не следует сравнивать с размером предыдущего текста.

Команда: delete-region start end

Эта команда удаляет текст между позициями start и end в текущем буфере и возвращает nil. Если точка находилась внутри удаляемого региона, ее значение после этого будет start. В противном случае точка перемещается вместе с окружающим текстом, как и маркеры.

Функция: delete-and-extract-region start end

Эта функция удаляет текст между позициями start и end в текущем буфере и возвращает строку, содержащую только что удаленный текст.

Если точка находилась внутри удаляемого региона, ее значение после этого будет start. В противном случае точка перемещается вместе с окружающим текстом, как и маркеры.

Команда: delete-char count &optional killp

Эта команда удаляет count символов непосредственно после точки или перед точкой, если count отрицательно. Если killp не равно nil, то она сохраняет удаленные символы в кольце обмена.

В интерактивном вызове count — это числовой префиксный аргумент, а killp — непроцессированный префиксный аргумент. Следовательно, если префиксный аргумент указан, текст сохраняется в кольце обмена. Если префиксный аргумент не указан, то удаляется один символ, но не сохраняется в кольце обмена.

Возвращаемое значение всегда nil.

Команда: delete-backward-char count &optional killp

Эта команда удаляет count символов непосредственно перед точкой или после точки, если count отрицательно. Если killp не равно nil, то она сохраняет удаленные символы в кольце обмена.

В интерактивном вызове count — это числовой префиксный аргумент, а killp — непроцессированный префиксный аргумент. Следовательно, если префиксный аргумент указан, текст сохраняется в кольце обмена. Если префиксный аргумент не указан, то удаляется один символ, но не сохраняется в кольце обмена.

Возвращаемое значение всегда nil.

Команда: backward-delete-char-untabify count &optional killp

Эта команда удаляет count символов назад, преобразуя табуляции в пробелы. Когда следующий символ для удаления — табуляция, он сначала заменяется соответствующим количеством пробелов для сохранения выравнивания, а затем удаляется один из этих пробелов вместо табуляции.

Если killp не равно nil, то команда сохраняет удаленные символы в кольце обмена.

Преобразование табуляций в пробелы происходит только если count положительно. Если оно отрицательно, то точно -count символов после точки удаляются.

В интерактивном вызове count — это числовой префиксный аргумент, а killp — непроцессированный префиксный аргумент. Следовательно, если префиксный аргумент указан, текст сохраняется в кольце обмена. Если префиксный аргумент не указан, то удаляется один символ, но не сохраняется в кольце обмена.

Возвращаемое значение всегда nil.

Пользовательский параметр: backward-delete-char-untabify-method

Этот параметр определяет, как backward-delete-char-untabify должен обрабатывать пробелы. Возможные значения включают untabify, значение по умолчанию, означающее преобразование табуляции во многие пробелы и удаление одного; hungry, означающее удаление всех табуляций и пробелов перед точкой одной командой; all, означающее удаление всех табуляций, пробелов и новых строк перед точкой, и 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/Deletion.html

Spec-Zone.ru

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