for 循环中的制表符补全不起作用

for 循环中的制表符补全不起作用

可执行命令的制表符补全在 bash 的交互式 for 循环中不起作用。我本可以发誓它曾经有效,但我对它从未有效的想法持开放态度,我快要疯了。它在常规命令行中运行良好,而不是在循环中运行。我一直发现自己 ^Cing 不再编写一个循环来完成名称,这样我就可以复制并粘贴它(实际上,我的命令名称并不像我在下面的示例中使用的“whatis”那么简单)。

例子:

$ which whatis
/usr/bin/whatis
$ wh<TAB>(BEEP)<TAB>
whatis    whereis   while     who
wheel     which     whiptail  whoami
$ what<TAB>is
usage: whatis keyword ...
$ for i in foo bar ray
> do
> what<TAB>(BEEP)<TAB>(BEEP)

环境如下:

$ bash --version
GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)

答案1

那么不妨将其作为答案发布。作为一种可能的解决方法,您可以简单地避免破坏循环并将所有内容保持在同一行:

for i in foo bar ray; do what<TAB>

以上将使您能够what按预期完成。

相关内容