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

5.2.6 insert-buffer の新しいボディ

GNU Emacs 22版の本体は、オリジナルよりも分かりにくい。

2つの式から成り、

  (push-mark
   (save-excursion
     (insert-buffer-substring (get-buffer buffer))
     (point)))

   nil

ただし、初心者が混乱しがちなのが、push-mark 式の中で非常に重要な処理が行われている点です。

get-buffer 関数は、指定された名前のバッファを返します。この関数は get-buffer-create とは呼ばれないことに注意してください。既存のバッファが存在しない場合に、バッファを作成することはありません。get-buffer によって返された既存のバッファは insert-buffer-substring に渡され、そこでバッファ全体が挿入されます(他に何も指定しなかったためです)。

バッファが挿入される位置は push-mark で記録されます。その後、関数は最後のコマンドの値である nil を返します。言い換えれば、insert-buffer 関数は何らかの値を返すためではなく、別のバッファを挿入するという副作用をもたらすためだけに存在します。