在 Ubuntu 中,你可以通过修改 readline 的行为来更改 tab 补全的方式。`bash` 依赖于 `readline` 库来实现输入编辑和历史功能。
默认情况下,当你按下 tab 键时,bash 会尝试补全当前词,如果有多个可能的补全选项,它会列出所有选项。为了实现你描述的行为,你需要启用 `menu-complete` 功能。
你可以通过修改 `~/.inputrc` 文件来实现这一功能。如果这个文件在你的 home 目录中不存在,你可以创建一个。
以下是如何设置 `menu-complete` 功能:
1. 打开或创建 `~/.inputrc` 文件:
nano ~/.inputrc
2. 在文件中加入以下行:
"\C-i": menu-complete
这里,`\C-i` 是 tab 键的控制字符表示。
3. 保存并关闭文件。
4. 让更改生效:
bind -f ~/.inputrc
现在,每次按下 tab 键,bash 都会尝试补全下一个可能的选项,而不是列出所有可能的选项,会在可能的补全选项之间循环。
请注意,这种行为可能需要一些时间适应,尤其是如果你已经习惯了标准的 bash 补全行为。如果你决定返回到原来的行为,只需从 `~/.inputrc` 文件中删除上述行,然后再次执行 `bind -f ~/.inputrc`。