kill-region — это обычная подпрограмма для удаления текста. Любая команда, вызывающая эту функцию, является командой удаления (и, вероятно, должна содержать в своем имени слово kill). kill-region помещает только что удаленный текст в новый элемент в начале кольца удаления или добавляет его к последнему элементу. Он автоматически определяет (используя last-command), была ли предыдущая команда командой удаления, и, если да, добавляет удаленный текст к последней записи.
Команды, описанные ниже, могут фильтровать удаленный текст перед сохранением его в кольцо удаления. Они вызывают filter-buffer-substring (см. Просмотр содержимого буфера) для выполнения фильтрации. По умолчанию фильтрация не производится, но основные и второстепенные режимы, а также функции хуков могут настроить фильтрацию, чтобы текст, сохраняемый в кольцо удаления, отличался от текста в буфере.
Эта функция удаляет участок текста между start и end; но если необязательный аргумент region не равен nil, она игнорирует start и end и удаляет текст в текущем регионе вместо этого. Текст удаляется, но сохраняется в кольце удаления вместе с его свойствами текста. Возвращаемое значение всегда nil.
При интерактивном вызове start и end являются точкой и меткой, а region всегда не равен nil, поэтому команда всегда удаляет текст в текущем регионе.
Если буфер или текст являются только для чтения, kill-region изменяет кольцо удаления так же, затем сигнализирует об ошибке, не изменяя буфер. Это удобно, поскольку позволяет пользователю использовать серию команд удаления для копирования текста из буфера только для чтения в кольцо удаления.
Если этот вариант не равен nil, kill-region не сигнализирует об ошибке, если буфер или текст являются только для чтения. Вместо этого он просто возвращается, обновляя кольцо удаления, но не изменяя буфер.
Эта функция сохраняет участок текста между start и end в кольце удаления (включая свойства текста), но не удаляет текст из буфера. Однако, если необязательный аргумент region не равен nil, функция игнорирует start и end и сохраняет текущий регион вместо этого. Она всегда возвращает nil.
При интерактивном вызове start и end являются точкой и меткой, а region всегда не равен nil, поэтому команда всегда сохраняет текст в текущем регионе.
Команда не устанавливает this-command в kill-region, поэтому последующая команда удаления не добавляется к той же записи в кольце удаления.