bash 中的非锚定历史子字符串搜索

bash 中的非锚定历史子字符串搜索

有两种现有方法可以轻松获得此类内容:

  • zsh 的历史子串搜索插件
  • bash的ctrl+r模式

zsh 的问题是它不在很多系统上。 bash 实现的问题是它要求我先按 ctrl+r。另外,我知道history-search-backwardbash,但它是锚定到命令的开头而且没有那么强大。

我希望有一种方法可以在 bash 中绑定向上键来实现它:

  • 复制当前输入的命令缓冲区
  • 进入ctrl+r模式
  • 在该模式下粘贴当前类型的命令缓冲区

并在随后按向上键时

  • 点击ctrl+r(搜索下一个上一个)

答案1

Bash 4.4 有history-substring-search-backward可以执行此操作的可绑定命令。来自新闻文件:

2.  New Features in Readline
<...>
b.  There are new bindable commands to search the history for the string of
    characters between the beginning of the line and the point
    (history-substring-search-forward, history-substring-search-backward)

相关内容