GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/eintr/kill_002dring_002dyank_002dpointer.html ・ emacs-doc.conao3.com

10.2 kill-ring-yank-pointer 変数

kill-ring-yank-pointer は変数であり、kill-ring も同様に変数です。他の Lisp 変数と同様に、参照先の値に束縛されることで、何らかの対象を指し示します。

したがって、キルリングの値が:

("some text" "a different piece of text" "yet more text")

また、kill-ring-yank-pointerは第2節を指しており、kill-ring-yank-pointerの値は次のとおりです:

("a different piece of text" "yet more text")

前章で説明した通り(リストの実装方法を参照)、コンピュータはkill-ringとkill-ring-yank-pointerの両方が指し示すテキストのコピーを2つ保持しているわけではありません。「別のテキスト部分」や「さらに別のテキスト部分」といった表現が重複して存在するわけではないのです。むしろ、2つのLisp変数は同じテキスト部分を指しています。以下に図を示します:


cons-5

変数 kill-ring と変数 kill-ring-yank-pointer はいずれもポインタである。しかし、キルリング自体は、通常、実際にそれが構成されている実体であるかのように記述される。kill-ring は、リストを指しているのではなく、それ自体がリストであるかのように語られる。逆に、kill-ring-yank-pointer はリストを指しているものとして語られる。

同じものについて語るこれら2つの表現は、一見すると紛らわしく感じられますが、よく考えれば納得がいきます。キルリングは一般的に、最近Emacsバッファから切り出された情報を保持するデータ構造全体のことと考えられています。一方、kill-ring-yank-pointerは、キルリングのどの部分に最初の要素(CAR)が挿入されるかを示す――つまり、そこを指し示す――役割を果たします。