说明(Linux)

说明(Linux)

我曾经发现过一个很棒的 bash 选项,但现在我记不清如何重新启用它了。

它扩展了自动完成功能以查看您最近的历史记录。因此,如果您之前输入过open index.html,然后open map.html输入

$ op

Tab一次会自动完成为open map.htmlTab再按一次会自动完成为open index.html

有谁知道我该如何重新启用此功能?

答案1

在你的 bash 中运行:

cat >> ~/.inputrc <<'EOF'
"\e[A": history-search-backward
"\e[B": history-search-forward
EOF

打开一个新的 shell 会话,或者只是重新加载 inputrc:

bind -f  ~/.inputrc

现在使用在输入命令的开头后 - 它将从历史记录中自动完成。

答案2

根据这一页(Ubuntu 博客上的“打开 Bash 智能完成”),这就像编辑文件一样简单bash.bashrc。为了清晰起见,我以更适合初学者的方式重写了以下这些说明。

说明(Linux)

  1. 在终端窗口中,编辑系统bash.bashrc文件。使用命令行文本编辑器执行此操作,例如纳米,执行命令sudo nano /etc/bash.bashrc(如果需要,输入您的密码)。

  2. 使用箭头键找到以下行:

    #if [ -f /etc/bash_completion ]; then
    #   . /etc/bash_completion
    #fi
    
  3. 取消对每一行的注释(通过删除#每行的前缀)。

  4. 保存文件(在 nano 中按Ctrl+oEnter,然后按Ctrl+x退出),现在它应该可以工作了。请注意:要使更改在现有终端生效,/etc/bash.bashrc需要来源。或者,注销并重新登录,或直接重新启动。

要禁用它,您需要做的就是重新注释上面的每一行(通过#在每行的开头添加)。

假设,如果您将上述三行(减去其#字符)插入到您的个人.bashrc文件中,上述操作也将起作用(适用于您的用户帐户)。如果您这样做,则无需使用sudo


根据这篇博文(“Mac OS X 的 Bash 完成”),对于 Mac OS X,说明有所不同。以下是您需要执行的操作。

说明(Mac OS X)

  1. 确保您已自制安装,然后使用它来安装包bash-completion(通过输入命令brew install bash-completion)。

  2. Homebrew 现在应该会告诉您需要做什么才能完成安装。在这种情况下,您需要将这三行添加到文件中.bashrc(使用我们上面使用的命令行文本编辑器(如 nano)或图形编辑器):

    if [ -f $(brew --prefix)/etc/bash_completion ]; then
       . $(brew --prefix)/etc/bash_completion
    fi
    
  3. 您现在应该可以在 bash 中实现自动完成功能。请注意:要使更改在现有 shell 中生效,.bashrc需要来源。或者,注销并重新登录,或直接重新启动。

要禁用它,您需要做的就是删除我们上面添加的行,然后运行命令brew uninstall bash-completion --force

答案3

我没有足够的声誉来发表评论,所以我添加了一个答案在 Ubuntu 18.04 中,这就是我所做的(在 shell 上自动完成上下箭头)

  • 编辑 ~/.bashrc
  • 添加了这两行(接近结尾)
绑定'“\e[A”:历史搜索向后'
绑定'“\e[B”:历史搜索前进'
  • 重新加载 bash;(或者退出终端然后重新进入)

相关内容