bash 中文件类型感知的制表符补全?

bash 中文件类型感知的制表符补全?

有可能在 bash 中有文件类型感知的制表符补全功能吗?

即假设目录中有两个文件“foobar.txt”和“foobar.html”,当我输入“firefox foo”然后按 Tab 键时,bash 通常会停在“firefox foobar”。因为正常的、不智能的 Tab 补全是不明确的。但是,由于扩展名的原因,可以优先选择“firefox foobar.html”。

我认为 zsh 开箱即用地实现了类似的功能,但我希望在 bash 中实现它。

在 bash 中是否可以实现这种“智能”的制表符补全?如何实现?

答案1

您应该安装/激活 bash-completion 脚本(我猜大多数 Linux 发行版上都有同名包)。这会为每个包含脚本的程序引入智能制表符补全功能(您甚至可以编写自己的脚本)。

通常,您可以通过编辑/etc/bash.bashrc并取消注释以下行来全局激活此功能

# enable bash completion in interactive shells

不过,不确定它是否支持开箱即用的 Firefox 命令完成功能。

相关内容