(defun isearch-forward (&optional regexp-p no-recursive-edit)
(interactive "P\np")
(isearch-mode t (not (null regexp-p)) nil (not no-recursive-edit)))特殊字符p(小字母p)作为args对交互功能做什么?第一个字符P(大写)是否意味着regexp-p值来自全局var定义。
再说一遍,关于参数,用户输入的单词作为regexp传递,no-recursive-edit是如何得到它的值的?
发布于 2015-02-01 02:49:21
第一个字母P代表原始前缀参数,它是变量current-prefix-arg的值。这是绑定到第一个形式参数,在本例中是regexp-p。
这与第二个字母p用\n (换行符)分隔。这是在interactive规范中分离输入的惯例。
第二个字母p代表数字前缀参数,它是(prefix-numeric-value current-prefix-arg)的值。这是绑定到第二个形式参数,在本例中是no-recursive-edit。
在Elisp手册节点Interactive Codes中可以了解到这一点。
https://stackoverflow.com/questions/28256955
复制相似问题