如何来回反向搜索?

m-r*_*ric 117 linux bash shell search

reverse-i-search经常使用,这很酷.有时候,当多次按CTRL+ 时r,我会传递我实际需要的命令.因为CTRL+ r在历史中向后搜索,从最新到最旧,我必须:

  1. 取消,
  2. 再次搜索和
  3. 完全停在命令,没有通过它.

虽然在reverse-i-search提示中,是否有可能向前搜索,即从我站到最新的位置.我天真地尝试了CTRL+ Shift+ r,没有运气.我听说过CTRL+ g但这不是我在这里所期待的.有人有想法吗?

gdu*_*ont 79

这里有一个类似的问题:

在bash中使用Control-r反向搜索:如何在Cygwin中"重置"搜索?

在超级用户上发现另一个类似的问题

Bash中的(反向搜索)

显然,两者都提到Ctrl+ s,这可能会成功.

希望有所帮助.我自己正在尝试找到一段代码,reverse-i-search以便检查它是如何完全实现的.

  • 重要提示:要使`^ -S`工作,将`stty -ixon`添加到你的bash配置文件(Linux上的`〜/ .bashrc`,OSX上的`〜/ .bash_profile`).另请注意,通过按下相应的其他键盘快捷键来反转方向最初是_no-op_ - 所有更改都是显示的前缀(`reverse-i-search` vs.`i-search`).因此,要实际*在另一个方向上迈出1步*,请按键盘快捷键*两次*. (41认同)
  • no-op意味着什么?`stty -ixon`究竟做了什么? (3认同)
  • @gdupont看起来i-search是readline的一部分.来源在这里:http://git.savannah.gnu.org/cgit/readline.git/tree/isearch.c?h = devvel (2认同)

Bri*_*e64 37

CTRL + S

...在使用后为我解决了......

stty -ixon
Run Code Online (Sandbox Code Playgroud)

如果CTRL + S不适合你,是因为根据Vincenzo Pii在另一个相关主题中接受的答案:

问题是在许多终端中,这种绑定默认用于发送暂停传输代码(XOF).

man stty:

[-]ixon
    enable XON/XOFF flow control
Run Code Online (Sandbox Code Playgroud)

所以,如果你有你的终端上启用这个选项(输出stty -a包含ixonwithouth的在-前面的标志),您不能使用CTRL+ S的背景下逆我搜索.

要禁用它,请使用以下命令:

stty -ixon
Run Code Online (Sandbox Code Playgroud)

CTRL+ S会给你一个(i-search)(非反向).


小智 7

尝试了一下delete,神奇地成功了。

其他人指向CTRL+ s,但它对我不起作用。

  • 首先尝试运行“stty -ixon”。如果有帮助,请将其添加到您的 bash 配置文件中。 (9认同)
  • 它可以工作,但是你能解释一下“stty -ixon”到底是做什么的吗? (6认同)
  • 删除对我没有任何作用 (3认同)