像 Bash 和许多其他 Linux 工具一样,你可以在 Emacs 中开始输入命令,然后按 Tab 键,看看 Emacs 是否会为你补全命令。 Emacs 可能会补全它,或者它可能会添加几个字符,然后等待输入。
例如,如果我们想要的命令是ispell-comments-and-strings,我们可以输入isp然后按 Tab 键。Emacs 会将其补全为 ispell,并等待更多输入。我们输入-co然后按 Tab 键。Emacs 有几个可能的选项,因此它会给我们一个补全列表。我们输入mm然后按 Tab 键,Emacs 会为我们完成剩下的工作。
您还可以使用 ? 或第二个 Tab 键获得可能的补全列表。
在 Emacs 中,Tab 补全以其他方式为你工作。例如,当你访问一个文件时,你可以使用 Tab 补全来指定文件名。在 Info 菜单中,你可以使用 Tab 补全来指定要访问的主题。
其他程序使用 GNU 项目的 C 函数 readline() (man 3 readline) 来处理它们的 Tab 补全。例如,Bash 尝试补全,依次将文本视为变量(如果文本以 $ 开头)、用户名(如果文本以 ~ 开头)、主机名(如果文本以 @ 开头)或命令(包括别名和函数)。如果这些都没有产生匹配,Bash 会尝试文件名补全。 GDB 允许补全程序函数和变量,并且仅在某些情况下尝试文件名补全。 vi 也具有文件名补全和在线帮助中的 Tab 补全。
对于用户友好的程序,您也可以使用 Tab 补全。函数 readline() 可用于(直接、通过包装器或在类似的工作原生函数中)使用 Java、Perl、Python、Guile 和 Tcl 的程序员,毫无疑问还有其他语言。 readline() 还支持输入历史记录,类似于 Bash 中的历史记录功能。 可以通过 rc 文件轻松自定义它。 文件的名称和位置可以通过环境变量 INPUTRC 指定给程序。