我在 Mac 和 cygwin shell 上都使用 bash。总体而言,我对它非常满意。
然而,我的一个抱怨是它的 TAB 完成不如 Windows 命令行 TAB 完成。
例如,如果有两个文件具有相同的前缀,那么当我尝试按 TAB 键完成时,bash 只会发出哔哔声。如果我继续按 TAB 键,它最终会向我显示潜在文件的列表。
我绝对更喜欢 Windows 如何直接在命令行上循环浏览潜在文件。
有没有办法让 bash 在这方面进行类似 Windows 命令行的运行?
如果没有(我不想切换 shell),我是否遗漏了 bash 中 TAB 补全的一些功能?有没有更有效的方法来使用它?
答案1
要获得“循环执行可能的完成”行为,请将以下内容复制到 .bashrc 文件中的适当位置:
[[ $- = *i* ]] && bind TAB:menu-complete
还,bash 完成除了路径名补全之外,还提供许多其他类型的补全。例如,menu-complete 可以与 Git 的 bash-completion 模块配合使用,以补全命令名称、选项名称等。