Searching

readline 提供了从命令历史中搜索包含给定字符串的行的命令 (参见下面的 HISTORY 历史 章节)。有两种搜索模式: incrementalnon-incremental.

增量的搜索在用户结束输入搜索字符串时开始。在搜索字符串的每个字符被输入的同时, readline 显示与已输入的字符串匹配的下一个历史条目。 增量的搜索只要求输入能找到期望的历史条目所需的那么多字符。 isearch-terminators 变量中的字符用来终止一次增量的搜索。如果 这个变量没有被赋值,Esc 和 Ctrl-J 字符串将结束一次增量的搜索。 Ctrl-G 将取消一次增量的搜索,恢复初始的行。当搜索终止时,包含搜索字符串 的历史条目成为当前行。

要从历史列表中找到其他匹配的条目,适当地键入 Ctrl-S 或 Ctrl-R。 这样将在历史中向前/向后搜索下一个匹配已输入的搜索字符串的条目。 其他关联到某个 readline 命令的按键序列将终止搜索并执行关联的命令。 例如,newline 将终止搜索,接受当前行,从而执行历史列表中的命令。

readline 可以记住上次增量搜索的字符串。如果键入两次 Ctrl-R,中间没有 输入任何字符来定义一个新的搜索字符串,那么将使用已记住的搜索字符串。

非增量的搜索将整个搜索字符串读入,然后才开始搜索匹配的历史条目。 搜索字符串可以由用户输入,或者是当前行的内容的一部分。