我想要一个 bash 自动完成功能,它可以循环遍历所有可能性,就像在 zsh 中一样,同时还执行通常的操作,即打印所有可能性(假设可能性不是太多),否则在打印前确认。
这两者不应该互相排斥。我知道如何让它循环遍历各种可能性(绑定“TAB:menu-complete”),但它会失去第一个功能。
另外,我想知道是否可以后退(类似于 shift+tab,就像在许多其他软件中一样),因为必须再次执行整个循环真的很烦人。
答案1
为了获得此功能,您需要将以下行写入文件~/.inputrc
:
# cycle forward
Control-k: menu-complete
# cycle backward
Control-j: menu-complete-backward
这样,您将保留当前的 Tab 行为。您可能还想考虑添加另一个配置选项:
# display one column with matches
set completion-display-width 1
它使可能性显示在一列中,因此而不是:
file1 file2 file3 file4...
或者
file1 file3 ...
file2 file4
你得到:
file1
file2
file3
file4
...
对我来说更加赏心悦目。
欲了解更多信息,请参阅man readline
或访问GNU Readline 图书馆网站。