12.5 复习

以下是一些最近引入的函数的简要概述。

while

重复评估表达式体的主体,只要体的第一个元素测试为真。然后返回nil。(仅为了其副作用而评估表达式。)

例如:

(let ((foo 2))
  (while (> foo 0)
    (insert (format "foo is %d.\n" foo))
    (setq foo (1- foo))))

     ⇒      foo is 2.
             foo is 1.
             nil

insert函数在光标处插入其参数;format函数根据其参数的方式返回一个字符串,就像message格式化其参数一样;\n产生一个新行。)

re-search-forward

搜索模式,如果找到模式,则将光标移动到其后。

search-forward相似,接受四个参数:

  1. 一个正则表达式,指定要搜索的模式。(记得在这个参数周围加上引号!)
  2. 可选的搜索限制。
  3. 可选的,如果搜索失败,返回nil或错误消息。
  4. 可选的,重复搜索的次数;如果为负数,则进行反向搜索。
let*

在本地将一些变量绑定到特定值,然后评估其余参数,返回最后一个的值。在绑定本地变量时,使用先前绑定的变量的本地值(如果有)。

例如:

(let* ((foo 7)
       (bar (* 3 foo)))
  (message "`bar' is %d." bar))
     ⇒ ‘bar’ is 21.
match-beginning

返回由上一次正则表达式搜索找到的文本的起始位置。

looking-at

如果光标后的文本与参数匹配(应为正则表达式),则返回t为真。

eobp

如果光标位于缓冲区的可访问部分的末尾,则返回t为真。如果缓冲区没有缩小,则可访问部分的末尾是缓冲区的末尾;如果缓冲区已经缩小,则可访问部分的末尾是缩小部分的末尾。