Mac Terminal自动完成


77

我一直在寻找补丁。通常在Unix / Linux终端上,当您按下Tab键时,它将自动完成,直到有多个选项,然后它将列出以下选项供您选择。例如:

cd he
helpFolder/ helpMe/ heIsThere/
cd help

现在使用Mac终端,它迫使您按两次以查看选项,而我想知道是否可以将该设置更改为按一下Tab键?

Answers:


52

把它放在你的~/.inputrc

set show-all-if-ambiguous on

您需要重新启动外壳程序(例如,通过打开新的终端窗口或键入exec /bin/bash)。


〜/ .inputrc文件在哪里
Vikas Pandey

6
@Vikas只需键入nano〜/ .inputrc或pico .inputrc即可对其进行编辑。由于时间段的原因,该文件已隐藏,因此您将无法在任何浏览器中看到该文件
Bqin1

1
对于那些询问〜/ .inputrc文件的人:只需打开终端并输入vim ~/.inputrc
seralouk '18

1
@VikasPandey~/等于您当前用户的主目录,并且您想在其中存储这种类型的设置文件。
NathanQ

143
  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. 打开一个新的“终端”窗口或选项卡,或键入“登录”以使用有效规则打开一个新会话
  5. 输入并按Tab键

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


2
对于其他尝试此操作的人:我在〜/ .profile中尝试了此操作,并在重新启动时出现错误:-bash:TAB:菜单完成:命令未找到。在.inputrc中,它工作正常。
安德鲁·斯威夫特

1
如果模棱两可,是否可以全部显示?现在,当我点按两次标签用于空白目录时,它什么也没显示
VTS12

11

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

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

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

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

1
这通过该选项卡解决了我的问题+1(它很想自动完成)
Hamza Belmellouki

6

您要更改的是Bash shell设置。我的操作系统版本是10.11.6,我使用的是mvim,这里只是vim或vi,如果〜/ .inputrc不存在,则需要创建一个新的。

  1. 在终端类型vim /.inputrc
  2. 需要将complete-ignore-case和show-if-if-ambiguous变量设置为ON,这可以通过将这些设置粘贴到两行中来完成,set completion-ignore-case on然后set show-all-if-ambiguous on

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

  4. 退出终端运行,Command + Q。
  5. 再次启动终端并验证结果。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.