flo*_*fan 26 bash autocomplete
我曾经发现了一个很棒的 bash 选项,但现在我不记得如何重新启用它。
它扩展了自动完成功能以查看您最近的历史记录。因此,如果您之前输入过open index.html然后open map.html输入
$ op
Run Code Online (Sandbox Code Playgroud)
并按Tab一次将自动完成到open map.html. 再次按下Tab将自动完成到open index.html。
有谁知道我如何重新启用它?
Noa*_*nos 24
在你的 bash 中运行:
cat >> ~/.inputrc <<'EOF'
"\e[A": history-search-backward
"\e[B": history-search-forward
EOF
Run Code Online (Sandbox Code Playgroud)
重新登录到 ssh 会话,或者简单地重新加载 inputrc:
bind -f ~/.inputrc
Run Code Online (Sandbox Code Playgroud)
现在使用⬆和⬇输入命令的开头后 - 它将从历史记录中自动完成。
joe*_*eey 11
根据Ubuntu 博客上的这个页面(“打开 Bash 智能完成”),它就像编辑bash.bashrc文件一样简单。为了清楚起见,我以更适合初学者的方式重写了下面的这些说明。
在终端窗口中,编辑系统bash.bashrc文件。要使用命令行文本编辑器(如nano)执行此操作,请执行命令sudo nano /etc/bash.bashrc(如果需要,请输入您的密码)。
使用箭头键找到这些行:
#if [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
#fi
Run Code Online (Sandbox Code Playgroud)
取消注释每一行(通过删除#每行的前缀)。
保存文件(在 nano 中通过按Ctrl+o和Enter,然后按Ctrl+x退出),它现在应该可以工作了。请注意:要使更改在现有终端中生效,/etc/bash.bashrc需要采购。或者,注销并再次登录,或者只是重新启动。
要禁用它,您需要做的就是重新注释上面的每一行(通过#在每行的开头添加一个)。
据推测,如果您将上述三行(减去它们的#字符)插入到您的个人.bashrc文件中,上述内容也将适用(对于您的用户帐户)。如果你这样做,你就不需要使用sudo.
根据这篇博文(“Bash Completion for Mac OS X”),Mac OS X 的说明有所不同。这是您需要做的。
确保已安装Homebrew,然后使用它来安装软件包bash-completion(通过键入命令brew install bash-completion)。
Homebrew 现在应该会告诉您完成安装需要做什么。在这种情况下,您需要将这三行添加到您的.bashrc文件中(使用我们上面使用的类似 nano 的命令行文本编辑器或图形编辑器):
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Run Code Online (Sandbox Code Playgroud)
您现在应该可以在 bash 中自动完成。请注意:为使更改生效在现有的炮弹效果,.bashrc需要进行采购。或者,注销并再次登录,或者只是重新启动。
要禁用它,您需要做的就是删除我们上面添加的行,然后运行命令brew uninstall bash-completion --force。
小智 9
我没有足够的声誉来发表评论,所以我在 Ubuntu 18.04 中添加了一个答案,这就是我所做的(在 shell 中获得向上和向下箭头的自动完成)
绑定 '"\e[A": 向后搜索历史记录' 绑定 '"\e[B": 历史搜索向前'