你可以在自定义类型的类型名符号之后,指定关键字—参数对。 下面是可用的关键字及其含义:
:value default提供默认值。
如果某个备选项中 nil 不是有效值,
那么必须使用 :value 指定一个合法的默认值。
如果你将它用于出现在 choice 内部的备选项类型,
它会指定:当用户在自定义缓冲区的菜单中选中该备选项时,
最初使用的默认值。
当然,如果选项的实际值匹配该备选项, 则会显示实际值,而非 default。
:format format-string ¶该字符串会被插入到缓冲区中,用来表示对应类型的值。 在 format-string 中可以使用以下 ‘%’ 转义符:
显示标记为按钮的文本 button。
:action 属性指定用户点击该按钮时执行的操作;
其值是一个接受两个参数的函数——按钮所在的界面组件,以及事件。
无法指定两个拥有不同操作的独立按钮。
使用 :sample-face 指定的特殊 face 显示 sample。
替换为该项的值。值的显示方式取决于项的类型, (对于变量而言)还取决于其自定义类型。
替换为该项的文档字符串。
与 ‘%d’ 类似,但如果文档字符串超过一行, 会添加一个按钮,用于控制显示全部内容还是只显示第一行。
在此处替换为标签。标签通过 :tag 关键字指定。
显示一个字面量 ‘%’。
:action action ¶用户点击按钮时执行 action。
:button-face face ¶将 face(一个 face 名或 face 名列表) 用于 ‘%[…%]’ 显示的按钮文本。
:button-prefix prefix ¶:button-suffix suffix用于指定按钮之前和之后显示的文本。 每一项可以是:
nil不插入任何文本。
直接插入该字符串。
使用该符号的值。
:tag tag使用字符串 tag 作为对应类型的值(或值的一部分)的标签。
为自定义界面提供清晰易懂的标签非常重要,
尤其是在使用 restricted-sexp 类型或定义新类型时。
See 定义新类型。
:doc doc ¶使用 doc 作为该类型对应值(或值的一部分)的文档字符串。
要使其生效,必须为 :format 指定值,
并在其中使用 ‘%d’ 或 ‘%h’。
通常为某个类型指定文档字符串,
是为了提供更多关于 choice 类型内部备选项
或其他复合类型各部分含义的信息。
:help-echo motion-doc ¶当你通过 widget-forward 或 widget-backward
移动到该项时,会在回显区显示字符串 motion-doc。
此外,motion-doc 还会用作鼠标的 help-echo 字符串,
它实际上可以是一个函数或表达式,求值后得到帮助字符串。
如果是函数,会以该界面组件为唯一参数调用它。
:match function ¶指定如何判断一个值是否匹配该类型。
对应的值 function 应该是一个接受两个参数的函数:
一个组件和一个值;如果值合法则返回非 nil。
:match-inline function ¶指定如何判断一个内联值是否匹配该类型。
对应的值 function 应该是一个接受两个参数的函数:
一个组件和一个内联值;如果值合法则返回非 nil。
关于内联值的更多信息,参见 列表内拼接。
:validate function为输入指定校验函数。function 接受一个组件作为参数,
如果组件当前值合法则返回 nil。
否则返回包含非法数据的组件,
并将该组件的 :error 属性设为描述错误的字符串。
:type-error string ¶string 用于描述一个值为何不匹配该类型,
由 :match 函数判断。
当 :match 函数返回 nil 时,
组件的 :error 属性会被设为 string。