22.2.2 interactive 的代码字符

下面的代码字符说明中包含若干关键词,其定义如下:

补全(Completion)

提供补全功能。TABSPCRET 执行名称补全, 因为参数是通过 completing-read 读取的(see 补全)。 ? 显示可能的补全列表。

已存在(Existing)

要求输入已有对象的名称。不接受无效名称; 如果当前输入不合法,退出小缓冲的命令不会生效。

默认值(Default)

如果用户在小缓冲中未输入任何内容,则使用某种默认值。 默认值取决于代码字符。

无输入输出(No I/O)

该代码字符不读取任何输入即可计算出参数。 因此,它不使用提示字符串,你提供的任何提示字符串都会被忽略。

即使该代码字符不使用提示字符串,如果它不是字符串中的最后一个代码字符, 你仍必须在其后跟随一个换行符。

提示(Prompt)

代码字符后紧跟提示信息。提示在字符串结束或换行符处结束。

特殊(Special)

该代码字符仅在交互式字符串开头有意义,且不寻找提示或换行符。 它是一个单独的、独立的字符。

以下是可用于 interactive 的代码字符说明:

*

如果当前缓冲区为只读,则发出错误信号。特殊。

@

选中调用该命令的按键序列中第一个鼠标事件所对应的窗口。特殊。

^

如果命令是通过 Shift 转换调用的,则在运行命令前设置标记并临时激活区域, 或扩展已激活的区域。 如果命令不是通过 Shift 转换调用,且区域处于临时激活状态, 则在运行命令前取消激活区域。特殊。

a

函数名(即满足 fboundp 的符号)。已存在、补全、提示。

b

已有缓冲区的名称。默认使用当前缓冲区的名称(see 缓冲区)。 已存在、补全、默认值、提示。

B

缓冲区名称。缓冲区不必存在。默认使用当前缓冲区以外最近使用的缓冲区名称。 补全、默认值、提示。

c

字符。光标不会移入回显区。提示。

C

命令名(即满足 commandp 的符号)。已存在、补全、提示。

d

光标位置,以整数表示(see Point)。无输入输出(No I/O)。

D

目录。默认值为当前缓冲区的当前默认目录 default-directory(see 文件名展开相关函数)。 已存在、补全、默认值、提示。

e

调用该命令的按键序列中的第一个或下一个非键盘事件。 更精确地说,‘e’ 获取列表形式的事件,因此你可以查看列表中的数据。 See 输入事件。无输入输出。

e’ 用于鼠标事件和特殊系统事件(see 其他系统事件)。 命令接收的事件列表取决于具体事件。 See 输入事件 在对应小节中描述了每种事件的列表形式。

你可以在单个命令的交互式声明中多次使用 ‘e’。 如果调用该命令的按键序列中有 n 个列表形式的事件, 则第 n 个 ‘e’ 提供第 n 个此类事件。 非列表形式的事件(如功能键和 ASCII 字符)不计入 ‘e’ 所关注的事件。

f

已有文件的文件名(see 文件名)。 关于默认值的细节参见 See 读取文件名。 已存在、补全、默认值、提示。

F

文件名。文件不必存在。补全、默认值、提示。

G

文件名。文件不必存在。如果用户只输入目录名,则返回值就是该目录名, 不会在目录后附加文件名。补全、默认值、提示。

i

无关参数。该代码总是提供 nil 作为参数值。无输入输出。

k

按键序列(see 按键序列)。 它会持续读取事件,直到在当前按键映射中找到一个命令(或未定义命令)。 按键序列参数以字符串或向量表示。光标不会移入回显区。提示。

如果 ‘k’ 读取的按键序列以按下事件结束, 它还会读取并丢弃随后的释放事件。 你可以使用 ‘U’ 代码字符获取该释放事件。

这类输入用于 describe-keykeymap-global-set 等命令。

K

可用于 keymap-set 等函数的按键序列形式。 工作方式与 ‘k’ 类似,区别在于它会对按键序列中的最后一个输入事件 禁止通常用于(必要时)将未定义按键转换为已定义按键的转换(see 读取按键序列)。 因此该形式通常用于提示输入要绑定到命令的新按键序列。

m

标记位置,以整数表示。无输入输出。

M

任意文本,在小缓冲中使用当前缓冲区的输入法读取,并以字符串返回(see Input Methods in The GNU Emacs Manual)。提示。

n

数字,在小缓冲中读取。如果输入不是数字,用户必须重新输入。 ‘n’ 从不使用前缀参数。提示。

N

数字前缀参数;但如果没有前缀参数,则像 n 一样读取数字。 值始终为数字。See 前缀命令参数。提示。

p

数字前缀参数。(注意此 ‘p’ 为小写。)无输入输出。

P

原始前缀参数。(注意此 ‘P’ 为大写。)无输入输出。

r

光标和标记,作为两个数值参数,较小者在前。 这是唯一指定连续两个参数而非一个参数的代码字母。 如果调用命令时当前缓冲区未设置标记,将会发出错误信号。 如果临时标记模式已开启(see The Mark) — 默认即为开启 — 且用户选项 mark-even-if-inactivenil, 即使标记已设置但未激活,Emacs 也会发出错误信号。无输入输出。

s

任意文本,在小缓冲中读取并以字符串返回(see 使用迷你缓冲区读取文本字符串)。 使用 C-jRET 结束输入。 (可使用 C-q 将这两个字符之一包含到输入中。)提示。

S

名称在小缓冲中读取的已 intern 符号。 使用 C-jRET 结束输入。 其他通常用于结束符号的字符(如空白、圆括号和方括号)在此处不结束输入。提示。

U

按键序列或 nil。 可在 ‘k’ 或 ‘K’ 参数之后使用, 以获取 ‘k’ 或 ‘K’ 读取按下事件后被丢弃的释放事件(如果有)。 如果没有丢弃释放事件,‘U’ 提供 nil 作为参数。无输入输出。

v

声明为用户选项的变量(即满足谓词 custom-variable-p)。 通过 read-variable 读取该变量。See Definition of read-variable。 已存在、补全、提示。

x

Lisp 对象,以其读取语法指定,以 C-jRET 结束。 该对象不会被求值。See 使用迷你缓冲读取 Lisp 对象。提示。

X

Lisp 形式的值。‘X’ 读取方式与 ‘x’ 相同, 然后对该形式求值,使其值成为命令的参数。提示。

z

编码系统名称(符号)。如果用户输入空内容,参数值为 nil。 See Coding Systems。补全、已存在、提示。

Z

编码系统名称(符号)——但仅当该命令有前缀参数时有效。 如果没有前缀参数,‘Z’ 提供 nil 作为参数值。 补全、已存在、提示。


emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike