交互式版本 multiply-by-seven 概述

通过创建 multiply-by-seven 的交互式版本,我们可以同时演示 interactive 特殊形式的用法,以及在回显区显示值的一种方式。

代码如下:

(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 调用,回显区会显示 ‘结果是 …‘ 并附上乘积。

更一般地,这类函数有两种调用方式:

  1. 先输入带数字的前缀参数,再用 M-x 加函数名调用,例如 C-u 3 M-x forward-sentence;或者
  2. 使用函数绑定的快捷键,例如 C-u 3 M-e

上面两个例子效果完全相同,都会让光标向前移动三个句子。(由于 multiply-by-seven 没有绑定按键,因此不能用作按键绑定示例。)

(如何将命令绑定到按键,见 See 常用按键绑定。)

前缀参数(prefix argument)可以通过 META 加数字传入,例如 M-3 M-e;也可以用 C-u 加数字,例如 C-u 3 M-e(只输入 C-u 不加数字时,默认值为 4)。