如何从特定于可执行文件的终端启用选项卡完成

时间:2010-03-14 00:03:17

标签: bash terminal tab-completion

在bash中,我相信可以在终端上启用选项卡完成,以获取特定于被调用的可执行文件的术语。

例如,给定一个带有有效参数{cake,carrot,banana}的可执行文件,输入'eat car'应该完成'吃胡萝卜'。

我相信这是可能的,因为我已经看到了'ant'标签 - 完成了它的目标(虽然这是如何建立的我不知道)。

如何实施此行为?

2 个答案:

答案 0 :(得分:9)

这是通过/etc/bash_completion.d/中的脚本完成的,如果您想为可执行文件here's a tutorial to get you started编写自己的完成支持。

如果您只需要让行为适用于常见的可执行文件,那么您的Linux发行版可能有一个 bash-completion 包,可以支持常用命令。

答案 1 :(得分:0)

这与文件名globbing完全相似,其中shell将尝试基于通配符通配符自动完成...例如....

echo foo*

将列出当前目录中以'foo'开头的所有文件... bash shell将通配符全局化并将其扩展为文件列表...

MSDOS有一个类似的概念,虽然它没有在运行时明确链接,我在谈论旧的Turbo C的东西,当通过链接'wildargs.obj'激活通配符globbing(如果我的记忆在内部,代码将遍历目录并基于通配符模式匹配扩展列表。

在Linux / * nix中,globbing是标准的,但是,你不能手动点击序列Tab键来进行模式匹配或完成...因为不同的终端可以不同地翻译tab键,当然处理它不同...