kill-region
は、テキストをキルするための標準的なサブルーチンです。この関数を呼び出すコマンドはすべてキルコマンドとなります(おそらく、名称に
‘kill’ を含めるべきでしょう)。kill-region
は、新たにキルされたテキストをキルリングの先頭にある新しい要素に配置するか、直近の要素に追加します。また、(last-command
を用いて)直前のコマンドがキルコマンドであったかどうかを自動的に判定し、そうであればキルされたテキストを直近のエントリに追記します。
以下に説明するコマンドは、キルリングに保存する前に、キルされたテキストをフィルタリングできます。これらのコマンドは、フィルタリングを行うために
filter-buffer-substring(バッファ内容の確認を参照)を呼び出します。デフォルトではフィルタリングは行われませんが、メジャーモードやマイナーモード、およびフック関数でフィルタリングを設定できるため、キルリングに保存されるテキストをバッファ内の内容とは異なるものにすることが可能です。
この関数は、start と end
の間にあるテキスト範囲をキルします。ただし、オプション引数 region が nil 以外の場合、start と end
は無視され、代わりに現在のリージョン内のテキストがキルされます。テキストは削除されますが、テキストプロパティと共にキルリングに保存されます。値は常に
nil となります。
インタラクティブコールでは、start と end
がポイントとマークであり、region は常に non-nil であるため、このコマンドは常に現在のリージョン内のテキストを消去します。
バッファやテキストが読み取り専用の場合、kill-region
は同様にキルリングを変更し、その後バッファを変更することなくエラーを通知します。これにより、ユーザーは一連のキルコマンドを用いて、読み取り専用バッファからキルリングへテキストをコピーできるため便利です。
このオプションが nil 以外の場合、バッファやテキストが読み取り専用であっても kill-region
はエラーを通知しません。代わりに単に戻り、キルリングを更新しますが、バッファは変更しません。
この関数は、start から end
までのテキスト範囲をキルリングに保存しますが(テキストプロパティを含む)、バッファからテキストを削除することはありません。ただし、オプション引数
region が nil 以外の場合、この関数は
start と end
を無視し、代わりに現在のリージョンを保存します。戻り値は常に nil となります。
インタラクティブコールでは、start と end
がポイントとマークであり、region は常に non-nil であるため、このコマンドは常に現在のリージョン内のテキストを保存します。
このコマンドは this-command を kill-region に設定しないため、後続の kill コマンドが同じ kill ring
エントリに追記することはありません。