我试图搜索我的bash历史与CTRL-r类似,但向前方向。
这对我来说是一种痛苦,当我只是太频繁地按CTRL-r,重新找到之前的命令。
如何像反向搜索一样向前搜索Bash历史记录?
我试图搜索我的bash历史与CTRL-r类似,但向前方向。
这对我来说是一种痛苦,当我只是太频繁地按CTRL-r,重新找到之前的命令。
如何像反向搜索一样向前搜索Bash历史记录?
当前回答
你也可以向前搜索。从bash信息手册“8.2.5在历史记录中搜索命令”:
要在历史记录中向后搜索特定字符串,输入C-r。 输入C-s会在历史记录中向前搜索。
然而,Ctrl-S的问题是有时会与XON/XOFF流控制发生冲突(例如在Konsole中)。但是,搜索是一个readline特性,您应该能够将其绑定到其他键。更新:通过运行来禁用XON/XOFF更简单更好
stty -ixon
其他回答
对于KDE的终端应用程序(Konsole),您可以根据以下答案在设置中使用XON/XOFF禁用流量控制:
在Konsole中,你可以通过设置->来禁用这个功能 配置策略->选择当前策略->编辑策略-> 启用流控制使用Ctrl+S和 Ctrl + Q’”
另一个解决方案是使用:
历史| grep <搜索表达式>
你可能想尝试https://github.com/dvorka/hstr,它允许“建议框风格”的Bash历史过滤(可选)基于指标的排序,即它在向前和向后方向上都更高效和更快:
它可以很容易地绑定到Ctrl-r和/或Ctrl-s
在我看来,最好的技巧是启用pgup和pgdown。把它放在~/.inputrc中
"\e[5~": history-search-forward
"\e[6~": history-search-backward
登出/登录,键入第一个字母,然后pgup或pgdown搜索整个历史
ctrl-R搜索所有包含单词的行,而history- forward搜索以单词开头的行
我通常在终端按ESC,然后按>。它至少会重置,然后你可以试着少按CTRL+R。