与CTRL-r类似,无法转发搜索Bash历史记录

Léo*_* 준영 187 bash search

我想类似的搜索我的bash的历史与CTRL- r,但对前进方向.

这对我来说很痛苦,当我经常打一次CTRL- r再次找到上一个命令时.

如何在反向搜索中转发搜索Bash历史记录?

hlo*_*dal 294

你也可以向前搜索.从bash info手册," 8.2.5在历史记录中搜索命令 ":

要在历史记录中向后搜索特定字符串,请键入C-r.键入C-s搜索历史记录.

然而,Ctrl-S的问题是有时会与XON/XOFF流控制冲突(例如在Konsole中).但是,搜索是一个readline功能,您应该能够将其绑定到其他键.更新:更简单,更好的是通过运行禁用XON/XOFF

stty -ixon
Run Code Online (Sandbox Code Playgroud)

  • 如果其他人有同样的问题我做了 - 如果你把它添加到.profile它不会生效.只有当你将它添加到.bash_profile时才会发生魔法!感谢一个很棒的小费 - 这让我疯了多年. (13认同)
  • @JohnGallagher需要注意的是,`.bash_profile`和`.profile`仅用于登录shell.我会把它放在`.bashrc`(我从`.profile`中获取). (12认同)
  • `[[$ - ==*i*]] && stty -ixon`可以用来避免问题[这里描述](http://stackoverflow.com/questions/24623021/) (10认同)
  • 这很棒,但我将stty -ixon添加到我的.profile中,它似乎不适用于新标签.关于如何使这项工作的任何想法?我希望默认情况下禁用XON/XOFF. (4认同)
  • 如果你正在使用PuTTY并且不想/不想在你连接的每台机器上维护`.bash_profile`,[超级用户的答案](http://superuser.com/a/376881/164453)是一种享受. (3认同)

小智 36

恕我直言的最佳技巧是pguppgdown.把它放在你的~/.inputrc

"\e[5~": history-search-forward
"\e[6~": history-search-backward
Run Code Online (Sandbox Code Playgroud)

注销/登录,键入第一个字母然后pguppgdown在整个历史记录中搜索

ctrl-R 搜索包含单词的所有行,而以单词开头的历史搜索前进搜索行

  • 你也可以在`/ etc/inputrc`中取消注释这两行(例如在Ubuntu中). (2认同)
  • 我更喜欢将其绑定到上下箭头:“ \ e [A”:history-search-backward和“ \ e [B”:history-search-forward (2认同)

Mar*_*rak 22

您可能需要尝试https://github.com/dvorka/hstr,它允许使用(可选)基于排序的指标对Bash历史记录进行"建议框样式"过滤,即在向前和向后方向上效率更高,速度更快:

在此输入图像描述

它可以很容易地绑定Ctrl-r和/或Ctrl-s

  • 我恋爱了.在Ubuntu上安装的快速说明:`sudo add-apt-repository ppa:ultradvorka/ppa; sudo apt-get update; sudo apt-get install hh; hh --show-configuration >>〜/ .bashrc;` (5认同)

Eya*_*him 12

我通常在终端按ESC,然后按'>'.它至少重置然后你可以尝试点击不太经常CTRL + R.


小智 8

另一种解决方案是使用:

history | grep <searched expression>


Use*_*ser 5

正如许多人所经历的那样,ctrl+由于软件流控制s(XON/XOFF 流控制)而冻结(和ctrl+解冻)终端,并且您可以按照接受的答案中提到的方式禁用它。q

尽管我不能说我真的有意使用该功能,但我确实希望该选项能够暂停快速移动的终端文本流,因此我不想完全禁用它。

因此,我没有将其关闭,而是通过将以下内容放入我的 .bashrc 来反弹 xoff 函数

stty stop '^P'
Run Code Online (Sandbox Code Playgroud)

它将 xoff 绑定到ctrl+ p(并且 ctrl+q 仍然解冻)。我使用“p”表示“暂停”,这确实掩盖了 bash 之前的命令功能previous-history。就我个人而言,我总是使用向上箭头键,所以这对我来说并不重要,但您可以选择不同的键。

这会自动释放ctrl+sforward-search-history