macos - 如何使 bash 制表符完成功能像 Windows 的 cmd.exe 一样工作?

标签 macos bash bash-completion iterm2

假设我有一个文件夹,其中包含如下名称的文件:

  • log_1.log
  • log_2.log
  • log_2.gz

我想在 log_2.gz 上执行一些操作,比方说移动。

在 Windows cmd.exe 中,我习惯于执行这些步骤:

  1. 输入move(别无其他)
  2. tabtabtab 遍历选项卡完成选项,直到我到达 log_2.gz<
  3. 输入目的地

但是在 bash shell 中(在 Mac OS X 10.8.3 上的 iTerm2 中),我必须做这样的事情:

  1. 输入mv l
  2. tab 将我带到 log_ 并发出恼人的嘟嘟声
  3. 输入2
  4. tab 将我带到 log_2. 并发出恼人的哔哔声
  5. 输入g
  6. tab 将我带到 log_2.gz 并且令人满意地保持沉默
  7. 输入目的地

如您所见,即使您知道目标文件名,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/

相关文章:

ruby-on-rails - 'gem 安装' 和 'sudo gem install'

cocoa - 强制 Cocoa 文本字段结束编辑

node.js - 无法在 Mac 上安装 Typescript

bash - 如何从 [windows 路径] 设置 [Windows 上 Ubuntu 上的 Bash] [环境变量]?

bash - 在 vim 的 bash 补全中忽略文件扩展名

linux - 如何在 bash 自动完成中只显示一级子目录?

mongodb - 无法使用docker命令启动mongo,但可以在容器内使用/bin/bash(有数据量)

objective-c - CABasicAnimation 不起作用

bash:检索给定字符串后的数字

bash - Cygwin git 选项卡补全