3.10.1 save-excursion 表达式的模板

使用 save-excursion 的代码模板很简单:

(save-excursion
  body…)

函数体是一个或多个表达式,它们将按顺序由Lisp解释器求值。如果在函数体中有多个表达式,则最后一个表达式的值将作为 save-excursion 函数的返回值。函数体中的其他表达式仅用于它们的副作用;而 save-excursion 本身仅用于其副作用(即还原point的位置)。

更详细地说,save-excursion 表达式的模板如下:

(save-excursion
  函数体中的第一个表达式
  函数体中的第二个表达式
  函数体中的第三个表达式函数体中的最后一个表达式)

一个表达式当然可以是一个独立的符号或一个列表。

在Emacs Lisp代码中,save-excursion 表达式经常出现在 let 表达式的体内。它的形式如下:

(let 变量列表
  (save-excursion
    函数体…))