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

インタラクティブな multiply-by-seven、概要

特殊形式 interactive の使用と、エコー領域に値を表示する方法の両方を、multiply-by-seven のインタラクティブ版を作成することで示すことができます。

コードはこちらです:

(defun multiply-by-seven (number)       ; Interactive version.
  "Multiply NUMBER by seven."
  (interactive "p")
  (message "The result is %d" (* 7 number)))

このコードは、コードの後にカーソルを置いて C-x C-e と入力することでインストールできます。関数名がエコーエリアに表示されます。その後、C-u と数値を入力し、さらに M-x multiply-by-seven と入力して RET を押すと、このコードを使用できます。エコーエリアには、フレーズ ‘The result is …’ とそれに続く積が表示されます。

より一般的に言えば、このような関数は次のいずれかの方法で呼び出します。

  1. 渡す数値を含む接頭辞引数を入力し、続いて C-u 3 M-x forward-sentence のように M-x と関数名を入力するか、あるいは、
  2. C-u 3 M-eのように、その機能に割り当てられている任意のキーやキーコードを入力することで。

先ほど挙げた2つの例は、いずれも同様にポイントを3文分進める働きをします。(multiply-by-sevenはキーに紐付けられていないため、キーバインドの例としては使えませんでした。)

(コマンドをキーに割り当てる方法については、主要なキーバインドを参照してください。)

接頭辞引数は、META キーに続けて数値(例えば M-3 M-e)を入力するか、あるいは C-u に続けて数値(例えば C-u 3 M-e)を入力することでインタラクティブ関数に渡されます(数値を伴わずに C-u と入力した場合は、デフォルトで 4 となります)。