我真的很喜欢 zsh 的历史记录自动完成功能。也就是说,当我按下时,我会收到上一个命令。当我打字时emacs
然后按向上键,我得到了我使用的最后一个 emacs 命令。当我打字时git
然后按向上键,我得到了我使用的最后一个 git 命令。当我尝试在 bash 中执行此操作时,它只会转到我使用的最后一个通用命令。本质上,我希望能够半键入一个命令,然后按向上键以获得我使用的最后一个与我迄今为止键入的命令相匹配的命令。我不知道如何在 bash 中实现这一点。我无法在此系统上使用 zsh,那么是否可以在 bash 中复制此功能?
向上箭头绑定到previous-history
命令。您想将其重新绑定到history-search-backward
(默认情况下未绑定)。您可以检查哪些键previous-history
目前绑定到:
$ bind -p | grep previous-history
"\C-p": previous-history
"\eOA": previous-history
"\e[A": previous-history
就我而言,最后两个都代表向上箭头(确切的转义序列可能因终端而异,或者取决于终端所处的模式,但这两个是相当标准的)。特别是从previous-history
仍然可以通过 Control-P 使用,可以安全地更改向上箭头的行为。
将其添加到您的.inputrc
文件(如有必要,创建文件):
"\e[A": history-search-backward
"\eOA": history-previous-history
或者,您可以添加呼叫bind
从你的.bashrc
:
bind '"\e[A": history-search-backward'
bind '"\eOA": history-previous-history'
您可能还想类似地绑定history-search-forward
到向下箭头键,\e[B
and \eOB
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)