search-forward
函数search-forward
函数用于在zap-to-char
中定位要删除的字符。如果搜索成功,search-forward
将光标立即置于目标字符串的最后一个字符之后。(在zap-to-char
中,目标字符串只有一个字符长。zap-to-char
使用char-to-string
函数确保计算机将该字符视为字符串。)如果搜索是向后的,search-forward
将光标放在目标的第一个字符之前。此外,search-forward
返回t
表示真(移动光标因此是一个副作用)。
在zap-to-char
中,search-forward
函数如下:
(search-forward (char-to-string char) nil nil arg)
search-forward
函数接受四个参数:
正好传递给zap-to-char
的参数是一个单个字符。由于计算机的构造方式,Lisp解释器可能会将单个字符视为与字符串不同。在计算机内部,单个字符具有与一个字符的字符串不同的电子格式。(计算机中通常可以用一个字节精确地记录一个单个字符;但字符串可能更长,计算机需要为此做好准备。)因此,zap-to-char
函数接收的字符必须在计算机内部从一种格式转换为另一种格式;否则,search-forward
函数将失败。使用char-to-string
函数进行此转换。
nil
。
nil
。将nil
作为第三个参数会导致函数在搜索失败时发出错误。
search-forward
的第四个参数是重复计数——要查找字符串的出现次数。此参数是可选的,如果函数在没有重复计数的情况下调用,则此参数将传递值1。如果此参数为负数,则搜索将向后进行。
在模板形式中,search-forward
表达式如下:
(search-forward "target-string" limit-of-search what-to-do-if-search-fails repeat-count)
接下来我们将看一下progn
。