Shell使用ctrl-r“子搜索”

时间:2017-03-05 09:16:15

标签: bash shell zsh

有没有办法用ctrl-r进行“子搜索”。假设我想搜索“查找”,然后在结果中搜索其他内容。搜索似乎至少不是zsh中的正则表达式,所以“find。* foo”之类的东西不起作用。

2 个答案:

答案 0 :(得分:1)

我正在回答bash

既不是reverse-search-history(绑定到Ctrl-r的函数),也不是历史扩展(通过它可以重新调用最后find命令键入!ls,或者打印它键入!ls:p)支持globbing或regex。

您最好的选择是

history | grep 'find.*foo'

寻找正则表达式找到。* foo'在命令历史记录中(您还可以提供history 20,将搜索限制为历史记录中的最后20个命令。)

答案 1 :(得分:1)

在zsh中,您可以使用 ESC x history-incremental-pattern-search-backward 来搜索模式的历史记录。不幸的是,这种模式是一种全球式的模式,而不是正则表达式。

大多数终端模拟器允许使用 Alt-X 而不是 ESC x