关于Ctrl+R(reverse-search-history)的反向搜索 —— forward-search-history的快捷键

Ctrl+R执行的是reverse-search-history,通过Ctrl+R可以根据关键字搜索历史命令,
按多次Ctrl+R可以继续搜索更旧的历史命令,但有时按快了多按了一次Ctrl+R,想要找的命令错过去了,
此时想要往另一个方向搜索历史命令的方法。

查看`man bash`,搜索forward-search-history,实际上forward-search-history的快捷键是Ctrl+S,
但多数终端环境将Ctrl+S作为suspend execution的快捷键(按Ctrl+Q是resume execution),
所以一般按Ctrl+S执行的是suspend execution,要想让Ctrl+S执行forward-search-history,
则一种方式是禁用Ctrl+S执行suspend execution,禁用的命令如下:
  stty -ixon
另一种方式是将forward-search-history定义为Ctrl+S之外的快捷键,
但终端环境下Ctrl+A~Z都是被占用的快捷键,可以找个不常用的来作为forward-search-history的快捷键,
如下两个快捷键个人习惯不使用:
  Ctrl+F   Forward one character
  Ctrl+B   Backward one character
于是决定选择Ctrl+F作为forward-search-history的快捷键,方法如下:
  编辑/etc/inputrc,在末尾添加如下一行:
    "\C-f": forward-search-history
此时,重新登陆或重开一个终端,先按Ctrl+R,输入命令的一部分开始搜索,然后再按几次Ctrl+R,
这时按Ctrl+F提示符由reverse-i-search变为i-search,再按一次Ctrl+F就往另一个方向搜索了。

你可能感兴趣的:(Linux)