Mac 终端自动完成

Mac Terminal Auto Complete

通常在 Unix/Linux 终端上,当您按 Tab 时,它会自动完成,直到有几个选项,然后它会在下面列出选项供您选择select。例如:

cd he
helpFolder/ helpMe/ heIsThere/
cd help

使用 Mac 终端,它会强制您按两次以查看选项。我想知道是否可以将该设置更改为按 Tab 键?

将此放入您的 ~/.inputrc:

set show-all-if-ambiguous on

您需要重新启动 shell(例如打开新终端 window 或输入 exec /bin/bash)。

  1. 输入终端nano ~/.inputrc
  2. 将以下内容粘贴到不同的行中

    set completion-ignore-case on
    set show-all-if-ambiguous on
    TAB: menu-complete
    
  3. 按 Control+O 保存对 .inputrc 的更改,然后按 control+X 退出
  4. 打开一个新终端 window 或选项卡,或键入“登录”以打开一个新会话并使规则生效
  5. 键入并按 Tab 键

来源:http://osxdaily.com/2012/08/02/improve-tab-completion-in-mac-os-x-terminal/

您要更改的是 Bash shell 设置。我的OS版本是10.11.6,我用的是mvim,这里只是vim或者vi,如果~/.inputrc不存在,那么你需要新建一个。

  1. 终端类型vim /.inputrc.
  2. 需要将 completion-ignore-case 和 show-all-if-ambiguous 变量设置为 ON,将这些设置粘贴到两行即可,set completion-ignore-case onset show-all-if-ambiguous on

  3. 添加 TAB: menu-complete 并写入并退出 vim。 :wq

  4. 退出终端运行,Command+Q。
  5. 再次启动终端并验证结果。

我正在添加一个新答案,因为在我的情况下添加行 set show-all-if-ambiguous on 是不够的。

我还必须删除以下行:TAB: menu-complete

我的完整 ~/.inputrc 文件如下:

set completion-ignore-case on
set show-all-if-ambiguous on

看起来其他评论是针对 bash 而 MacOs 已经移至 zsh 作为默认值 shell。要启用自动完成(包括子命令),将以下行放入 zsh 配置文件 (~/.zshrc) 对我有用:

autoload -Uz compinit && compinit