在 bash 中获得更多有用的选项卡完成提示?

Ama*_*rus 7 linux shell bash command-line-interface prompt

假设我有一个包含几个文件的目录,如下所示:

$ ls
file1  file2  file3
Run Code Online (Sandbox Code Playgroud)

我想在 bash 中做一些 tab 补全:

$ cat file<tab>
file1  file2  file3  
Run Code Online (Sandbox Code Playgroud)

我记得看到有人在做 Tab 补全,shell 将下一部分加粗,所以在这种情况下,它会将文件名的1,2和加粗,3因此它看起来像这样:文件1 文件2文件3

这将告诉您接下来应该输入什么。

我认为这是 的一个功能zsh,但有什么办法可以得到它bash吗?

And*_*ndy 2

我不知道直接移植的功能,但有一种方法可以在bash. 可编程完成允许您根据调用程序指定按下 Tab 键时希望看到的内容,允许(作为一个流行的示例)ssh[tab] 显示来自 的自动完成选项~/.ssh/known_hosts

以下是一些有用的资源:

简介、来源和 RPM

用户贡献了“完成”

更多示例

还有更多例子

当然,要复制上面指定的功能,您必须认真研究完成的可编程方面并编写自己的函数。Ubuntu 提供了自己的一组用户贡献的补全,这是一个很好的起点。