我曾经发现过一个很棒的 bash 选项,但现在我记不清如何重新启用它了。
它扩展了自动完成功能以查看您最近的历史记录。因此,如果您之前输入过open index.html
,然后open map.html
输入
$ op
按Tab一次会自动完成为open map.html
。Tab再按一次会自动完成为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)
在终端窗口中,编辑系统
bash.bashrc
文件。使用命令行文本编辑器执行此操作,例如纳米,执行命令sudo nano /etc/bash.bashrc
(如果需要,输入您的密码)。使用箭头键找到以下行:
#if [ -f /etc/bash_completion ]; then # . /etc/bash_completion #fi
取消对每一行的注释(通过删除
#
每行的前缀)。保存文件(在 nano 中按Ctrl+o和Enter,然后按Ctrl+x退出),现在它应该可以工作了。请注意:要使更改在现有终端生效,
/etc/bash.bashrc
需要来源。或者,注销并重新登录,或直接重新启动。
要禁用它,您需要做的就是重新注释上面的每一行(通过#
在每行的开头添加)。
假设,如果您将上述三行(减去其#
字符)插入到您的个人.bashrc
文件中,上述操作也将起作用(适用于您的用户帐户)。如果您这样做,则无需使用sudo
。
根据这篇博文(“Mac OS X 的 Bash 完成”),对于 Mac OS X,说明有所不同。以下是您需要执行的操作。
说明(Mac OS X)
确保您已自制安装,然后使用它来安装包
bash-completion
(通过输入命令brew install bash-completion
)。Homebrew 现在应该会告诉您需要做什么才能完成安装。在这种情况下,您需要将这三行添加到文件中
.bashrc
(使用我们上面使用的命令行文本编辑器(如 nano)或图形编辑器):if [ -f $(brew --prefix)/etc/bash_completion ]; then . $(brew --prefix)/etc/bash_completion fi
您现在应该可以在 bash 中实现自动完成功能。请注意:要使更改在现有 shell 中生效,
.bashrc
需要来源。或者,注销并重新登录,或直接重新启动。
要禁用它,您需要做的就是删除我们上面添加的行,然后运行命令brew uninstall bash-completion --force
。
答案3
我没有足够的声誉来发表评论,所以我添加了一个答案在 Ubuntu 18.04 中,这就是我所做的(在 shell 上自动完成上下箭头)
- 编辑 ~/.bashrc
- 添加了这两行(接近结尾)
绑定'“\e[A”:历史搜索向后' 绑定'“\e[B”:历史搜索前进'
- 重新加载 bash;(或者退出终端然后重新进入)