Ctrl-R反向搜索后向前搜索的单个快捷方式


13

我一直都在使用Ctrl+ R,但是当我如此快速地按下它时,我常常会越过我要遵循的命令。

要向前搜索,Ctrl+ S可以用来提供它不使用终端第一(konsole中在我的情况,其中stty -ixon~/.bashrc修复它)。

但是,我必须按两次:一次进入模式i-search后似乎进入,reverse-i-search第二次实际后退。

有没有一种方法可以消除两次​​按下快捷键的需要?


3
与Ctrl-R一样,第一个Ctrl-S等待字符串搜索。第二个重复使用您之前使用的相同搜索字符串(根据情况使用Ctrl-R)。我知道没有办法避免这两个步骤。readline缺少“反过来搜索相同的字符串”功能。
xhienne

Answers:


11

这是另一种方法。如果您熟悉一些基本的vi编辑命令,则bash支持使用vi模式进行命令行编辑。如果您真的讨厌vi,您将不会喜欢它。但是,如果您可以忍受,您可能会发现它更受欢迎,而且击键次数也更少。

设置-o vi

历史记录的搜索方式如下:

  • Esc 进入命令模式
  • / 开始搜索
  • 输入搜索字符串的文本
  • Enter 执行搜索
  • n 去下一场比赛
  • N 跳回到上一场比赛
  • i 回到插入模式
  • Enter 运行命令

与Ctrl-R和Ctrl-S对应的vi样式分别为nN。而且他们不需要点击两次。有趣!
纳撒尼尔·比弗

2

显然,Bash历史记录搜索需要先按快捷方式以让您知道要搜索的方向,然后再按两次以实际执行搜索。我认为在不修改源代码的情况下无法更改其工作方式。

但是,您可以安装hstr(https://github.com/dvorka/hstr),它带有一个带有高级搜索选项的建议框,可轻松查看,导航,搜索和管理命令历史记录:

在此处输入图片说明

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.