zap-to-char
函数的主体zap-to-char
函数的主体包含了用于删除(即移除)文本的代码,该文本位于光标当前位置到指定字符(包括该字符)的区域。
代码的第一部分如下:
(if (char-table-p translation-table-for-input) (setq char (or (aref translation-table-for-input char) char))) (kill-region (point) (progn (search-forward (char-to-string char) nil nil arg) (point)))
char-table-p
是一个前文未见的函数。它用于确定其参数是否为字符表。当是字符表时,它将传递给zap-to-char
的字符设置为其中之一(如果该字符存在),否则设置为字符本身。(这对于非欧洲语言中的某些字符很重要。aref
函数从数组中提取元素。它是一个特定于数组的函数,本文档不详细描述。See Arrays in The GNU Emacs Lisp Reference Manual.)
(point)
是光标的当前位置。
代码的下一部分是一个使用progn
的表达式。progn
的主体由对search-forward
和point
的调用组成。
在学习progn
之前,了解一下search-forward
会更容易理解,因此我们将先看看search-forward
,然后再看progn
。