Spec-Zone.ru › Elisp

Функции для удаления

kill-region — это обычная подпрограмма для удаления текста. Любая команда, вызывающая эту функцию, является командой удаления (и, вероятно, должна содержать «kill» в своём имени). kill-region помещает удалённый текст в новый элемент в начале кольца удаления или добавляет его к последнему элементу. Он автоматически определяет (используя last-command) была ли предыдущая команда командой удаления, и если да, добавляет удалённый текст к последней записи.

Описанные ниже команды могут фильтровать удалённый текст перед сохранением его в кольце удаления. Они вызывают filter-buffer-substring (см. Содержимое буфера) для выполнения фильтрации. По умолчанию фильтрация отсутствует, но основные и второстепенные режимы и функции хуков могут настроить фильтрацию, так что текст, сохранённый в кольце удаления, отличается от текста в буфере.

Команда: kill-region start end &optional region

Эта функция удаляет фрагмент текста между start и end; но если необязательный аргумент region не nil, он игнорирует start и end и удаляет текст в текущей области. Текст удаляется, но сохраняется в кольце удаления вместе со своими свойствами текста. Значение всегда nil.

В интерактивном вызове start и end — это текущая позиция и метка, а region всегда не nil, поэтому команда всегда удаляет текст в текущей области.

Если буфер или текст только для чтения, kill-region изменяет кольцо удаления аналогично, а затем сигнализирует об ошибке, не изменяя буфер. Это удобно, так как позволяет пользователю использовать серию команд удаления для копирования текста из буфера только для чтения в кольцо удаления.

Параметр пользователя: kill-read-only-ok

Если этот параметр не nil, kill-region не сигнализирует об ошибке, если буфер или текст только для чтения. Вместо этого он просто возвращается, обновляя кольцо удаления, но не изменяя буфер.

Команда: copy-region-as-kill start end &optional region

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

В интерактивном вызове start и end — это текущая позиция и метка, а region всегда не nil, поэтому команда всегда сохраняет текст в текущей области.

Команда не устанавливает this-command в kill-region, поэтому последующая команда удаления не добавляет к той же записи кольца удаления.

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/Kill-Functions.html

Spec-Zone.ru

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