(反向i搜索)在Bash中


26

通常,我通常使用CTRL+ r表示(反向搜索),但是有时我会传递我一直在寻找的命令。如果我再做一次(reverse-i-search),就找不到了。我假设当前指向命令历史记录的指针在我要查找的命令之前。

有谁知道如何返回历史记录中的最新命令而不必单击1000次down arrow


1
反向搜索是bash(和readline库)的一项功能,因此我对标题和问题进行了一些编辑以反映这一点。
Doug Harris

如果您超过了想要的命令,CTRL+SHIFT+R请返回
Ricky Robinson

Answers:


7

在stackoverflow.com上也有类似的问题

最好的答案是Ctrl+G用来取消当前搜索。


这确实不是最佳答案。最好的答案是丹尼斯·威廉姆森(Dennis Williamson)给出的答案:添加stty -ixon您的文件.bashrc(或其他一些相应的配置文件),然后Ctrl-S在历史上前进,与Ctrl-G后退类似。更改为后,先Ctrl-S按键,下一个则迈出第一步。然后,每个人又向前迈出了一步。Ctrl-Greverse-i-searchi-searchCtrl-SCtrl-S
nrz 2014年

或者,如果您已经终止了搜索(例如,按esc或箭头键),则可以按Esc,然后按'>'
Superole,2015年

38

实际上,对该问题的另一个答案给出了更好的选择。

在您~/.bashrc添加以下行:

stty -ixon

然后,您可以使用Ctrl- s以与使用相同的方式向前浏览历史Ctrl- r向后退。

这甚至将努力开始新的正向搜索(称为i-search相对于reverse-i-search同时通过历史浏览)。假设您这样做Ctrl- r并在目标位置附近键入命令的某些文本,然后多次按向上箭头以超出实际的查找范围(或者您改变主意)。现在按Ctrl- s并从该行中键入几个字符。动物园!直接吧。


2
stty -ixon的含义是什么?是否禁用了其他情况下可能需要的某些功能?
格雷戈里·帕科斯

7
@GregoryPakosz:它禁用XON / XOFF(软件流控制),由于我们以高于300波特的速率进行通信,因此对键盘没有用。
暂停,直到另行通知。

谢谢,用了一段时间的
谷歌
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.