Функции для удаления
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