该函数设置读取键盘输入的模式。若 interrupt 非 nil,Emacs 使用输入中断;若为 nil,则使用 CBREAK 模式。默认设置与系统相关,部分系统无论如何指定均始终使用 CBREAK 模式。
当 Emacs 直接与 X 服务通信时,会忽略该参数并按自身通信方式使用中断。
若 flow 非 nil,Emacs 对终端输出使用 XON/XOFF(C-q、C-s)流控,该设置仅在 CBREAK 模式下生效。
参数 meta 控制对 127 以上输入字符编码的支持。若 meta 为 t,Emacs 会在按需解码前将第 8 位置 1 的字符转为 Meta 字符(see 终端 I/O 编码);若为 nil,则忽略第 8 位(终端将该位用作校验位时必需如此);若为符号 encoded,Emacs 先以完整 8 位解码字符,再将解码后单字节字符中第 8 位置 1 的转为 Meta 字符;若为其他值,Emacs 在解码前后均完整使用 8 位输入,适用于使用 8 位字符集且不以第 8 位表示 Meta 修饰键的终端。
若 quit-char 非 nil,则指定用于退出操作的字符,通常为 C-g。See 退出。
函数 current-input-mode 返回 Emacs 当前使用的输入模式设置。
该函数返回当前读取键盘输入的模式,返回一个列表,格式与 set-input-mode 参数对应,为 (interrupt flow meta quit),其中:
非 nil 表示 Emacs 使用中断驱动输入;为 nil 则使用 CBREAK 模式。
非 nil 表示 Emacs 对终端输出使用 XON/XOFF(C-q、C-s)流控,仅在 interrupt 为 nil 时有效。
为 t 表示 Emacs 在解码前将输入字符第 8 位视为 Meta 位;为 encoded 表示在解码后单字节字符中识别 Meta 位;为 nil 表示清除所有输入字符第 8 位;其他值表示 Emacs 直接使用完整 8 位作为基础字符编码。
Emacs 当前用于退出的字符,通常为 C-g。