输入法(Input methods) 提供了从键盘输入非 ASCII 字符的便捷方式。 编码系统的作用是在程序可读的编码与非 ASCII 字符之间进行转换, 而输入法与此不同,它提供更符合人类使用习惯的输入方式。 (关于用户如何使用输入法输入文字,参见 See Input Methods in The GNU Emacs Manual。) 如何定义输入法尚未在本手册中说明,但本节会介绍如何使用它们。
每个输入法都有一个名称,目前为字符串类型; 未来符号类型也可能被用作输入法名称。
该变量保存当前缓冲区中激活的输入法名称。
(无论以何种方式设置,它在每个缓冲区中都会自动变为局部变量。)
如果当前缓冲区未激活任何输入法,其值为 nil。
该变量保存选择输入法相关命令所使用的默认输入法。
与 current-input-method 不同,该变量通常是全局的。
该命令为当前缓冲区激活 input-method 输入法。
它同时会将 default-input-method 设置为 input-method。
如果 input-method 为 nil,该命令会关闭当前缓冲区的所有输入法。
该函数通过迷你缓冲区读取一个输入法名称,提示信息为 prompt。
如果 default 非 nil,用户输入为空时将返回该默认值。
但如果 inhibit-null 非 nil,空输入会触发错误。
返回值为字符串类型。
该变量定义了所有支持的输入法。 每个元素对应一个输入法,格式如下:
(input-method language-env activate-func title description args...)
其中 input-method 是输入法名称,为字符串; language-env 也是字符串,表示该输入法推荐使用的语言环境名称(仅用于文档说明)。
activate-func 是激活该输入法时调用的函数。 args(如果有)会作为参数传递给 activate-func。 最终传给 activate-func 的参数依次为 input-method 和 args。
title 是该输入法激活时显示在模式行上的字符串。 description 是描述该输入法及其用途的字符串。