![如何使 bash 列表在同一行上完成可能的文件补全](https://linux22.com/image/1323917/%E5%A6%82%E4%BD%95%E4%BD%BF%20bash%20%E5%88%97%E8%A1%A8%E5%9C%A8%E5%90%8C%E4%B8%80%E8%A1%8C%E4%B8%8A%E5%AE%8C%E6%88%90%E5%8F%AF%E8%83%BD%E7%9A%84%E6%96%87%E4%BB%B6%E8%A1%A5%E5%85%A8.png)
每次我按 Tab 键列出我所在目录与指定的部分文件名的可能匹配的文件名时,bash 都会列出可能的匹配并换到新行。
有谁知道是否可以改变这种行为,使得可能的匹配项列在当前正在输入的命令下面,但是命令焦点停留在原处,不会换行。如果重复按下 Tab 键显示的匹配项与之前显示的匹配项不同,则之前显示的文件名匹配项将在屏幕上被删除并替换为新的结果。
在过去一年左右的时间里,我一直使用 zsh,它具有这样的功能,但我不知道这个功能是否是 zsh 固有的,或者是否有某些配置强制执行该行为(我无法再访问那台机器,所以我无法检查)。
我以前有过的 zsh 行为,以及我试图模仿的行为,也提供了自动完成功能,通过在列表显示后反复按 Tab 键循环浏览每个可能的列出匹配项(前提是指定的部分文件名没有更改,这将导致出现新的可能文件名匹配项列表 - 我知道可以通过在配置中绑定“TAB:menu-complete”来实现循环自动完成功能)。
如果相关的话,我之前使用的 zsh shell 是在 RHEL 上运行的。我目前在 Ubuntu 上运行 bash。
答案1
这是 zsh 特有的显示行为;bash 不支持它。您可以习惯它,或者在 Ubuntu 系统上安装 zsh。