次: , 前: User-Level Deletion, 上: Text


31.8 キルリング

キル関数は削除関数のようにテキストを削除しますが、 ユーザーがヤンク(yank)で再度挿入できるように保存します。 これらの関数の多くは、その名前に`kill-'があります。 対照的に、`delete-'で始まる名前の関数は、 ヤンクできるようにテキストを保存しません(アンドゥはできる)。 それらは『削除』関数です。

キルコマンドの多くは主に対話的に使うものであり、 ここではそれらについては述べません。 ここで述べるのは、そのようなコマンドを書くために使う関数についてです。 これらの関数は読者がテキストをキルするコマンドを書くために使えます。 Lisp関数において内部目的のためにテキストを削除する必要があるときには、 キルリングの内容を乱さないように普通は削除関数を用いるべきです。 See Deletion

キルしたテキストはあとでヤンクできるように キルリング(kill ring)に保存されます。 これは、最後にキルしたテキストだけでなく、 最近キルしたものを多数保持するリストです。 これを『リング』と呼ぶのは、 要素が循環しているようにヤンクが扱うからです。 このリストは変数kill-ringに保持されていて、 リスト向けの通常の関数で操作できますが、 本節で述べるように、それをリングとして扱う特別な関数もあります。

単語『キル』の使い方が不適当だと考える人々がいます。 『キル』したものを特に破壊しない操作を表すために使っているからです。 日常生活に照らしてみると、死は恒久的であり『キル』したものが 生き返ることはありません。 したがって、別の隠喩も提案されています。 たとえば、原稿を鋏で切り貼りすることに慣れていた前計算機世代の人々には 『カットリング』のほうが意味が通じるでしょう。 しかし、いまさら用語を変更するのは困難です。