当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在bash中使用Control-r反向搜索:如何在Cygwin中"重置"搜索?》经验,为你挑选了3个好方法。

问题:你怎么告诉Ctrl+ rreverse-i-search"重置自己"并且每次都从历史的底部开始搜索?

背景:在Bash中使用reverse-i-search时,一旦完成搜索历史记录并且找不到更多匹配项,我总是卡住.有时我会Esc再次点击并重新调用Ctrl+ r,期望它从我的历史记录底部开始一个全新的搜索.然而,"指针"似乎仍然在我历史上的前一个地方.

问题是,我通常不希望这种行为.如果我点击Esc,然后重新调用Ctrl+ r,我希望它表明它应该再次从底部重新启动并重新启动.

更新:我想我应该提到我在Windows上使用Cygwin,因为到目前为止提到的解决方案都没有.

更新:此问题被标记为可能重复的问题.由于以下原因,此问题不重复:

替代问题不涉及Cygwin.

替代问题不涉及如何将搜索重置为其初始状态(相反,它只处理搜索和转发中的向后).

hayalci.. 32

我的bash按照你的期望工作.也许点击"ctrl + C"而不是"esc"可以提供帮助.

此外,您可以使用"ctrl + s"向前搜索

编辑:如果没有向你的终端发送"停止",ctrl + s有效,即"stty -a"给你"-ixon".你可以用"stty -ixon"来改变它.感谢@Phil提醒.



1> hayalci..:

我的bash按照你的期望工作.也许点击"ctrl + C"而不是"esc"可以提供帮助.

此外,您可以使用"ctrl + s"向前搜索

编辑:如果没有向你的终端发送"停止",ctrl + s有效,即"stty -a"给你"-ixon".你可以用"stty -ixon"来改变它.感谢@Phil提醒.


ctrl-s通常会向你的终端发送一个停止,所以除非你有重新配置,(stty -a会给你这个),你的终端将拦截那次击键)

2> Tom Alsberg..:

我从来没有试过在使用Escape时将其设置为默认值,但bash readline用于输入,默认情况下接受Emacs样式的键绑定,因此您可以使用M->(通常通过组合Meta/Alt和/ >或通过跟随Escape键使用)>).

如果M->由于您的终端不允许您输入该功能而无效,请尝试^G(G同时控制).这是Emacs中的"取消"中风,通常也适用readline.



3> Danke Xie..:

得到了这个问题的确认答案.

要重置ctrl-r,通常的emacs键ctrl-g可以执行.如果你想将ctrl-r反向一步,而不是再次从底部向上移动,你可以使用ctrl-s.诀窍是ctrl-s也用于暂停终端.所以你需要将它分配给另一个键.例如,以下内容将暂停设置为ctrl-w(并使用ctrl-q保持"resume").

$ stty STOP ^w

或者,您也可以完全禁用XON/XOFF(恢复/暂停)流控制字符

$ stty -ixon -ixoff

这也将释放ctrl-s.要重新启用暂停/恢复,您可以这样做

$ stty ixon ixoff

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有