假设我有一个文件夹,其中包含如下名称的文件:
log_1.log
log_2.log
log_2.gz
我想在 log_2.gz 上执行一些操作,比方说移动。
在 Windows cmd.exe 中,我习惯于执行这些步骤:
- 输入
move
(别无其他) - tabtabtab 遍历选项卡完成选项,直到我到达
log_2.gz
< - 输入
目的地
但是在 bash shell 中(在 Mac OS X 10.8.3 上的 iTerm2 中),我必须做这样的事情:
- 输入
mv l
- tab 将我带到
log_
并发出恼人的嘟嘟声 - 输入
2
- tab 将我带到
log_2.
并发出恼人的哔哔声 - 输入
g
- tab 将我带到
log_2.gz
并且令人满意地保持沉默 - 输入
目的地
如您所见,即使您知道目标文件名,bash 也需要更多的步骤,但想象一下您不确定文件名中到底是什么的场景(也许 ls
太长的)。在输入几次 tab + 后,我经常发现自己处于这种情况,并且被迫放弃命令,再次运行 ls
,复制文件名,甚至可能运行 pwd
与文件夹连接,然后从我离开的地方继续。这很烦人。
最佳答案
您可以在您的.inputrc
(如果您没有,则创建它)文件中添加以下内容。添加后,获取文件或注销并重新登录。
set show-all-if-ambiguous on
set completion-ignore-case on
TAB: menu-complete
关于macos - 如何使 bash 制表符完成功能像 Windows 的 cmd.exe 一样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16805873/