补全(Completion)是一项根据名称缩写自动填充剩余部分的功能。补全通过将用户输入与合法名称列表对比,确定用户已输入内容能唯一确定名称的多少部分来工作。例如,当你输入 C-x b(switch-to-buffer),然后
输入目标缓冲区名称的前几个字母,再按 TAB(minibuffer-complete),Emacs 会尽可能补全名称。
Emacs 标准命令为符号、文件、缓冲区、进程等名称提供补全;使用本节中的函数,你可以为其他类型名称实现补全功能。
函数 try-completion 是补全的基础原语:它根据给定的初始字符串和匹配字符串集合,返回最长可确定的补全结果。
函数 completing-read 提供更高级的补全接口。调用 completing-read 时指定如何确定合法名称列表,该函数会激活小缓冲并使用局部键映射,将若干按键绑定到补全相关命令。其他函数为读取特定类型名称并使用补全提供便捷简化接口。