按命令过滤ZSH历史记录

时间:2012-12-26 12:06:27

标签: filtering history zsh

我被告知在ZSH中你可以做类似command的事情然后当你点击它时会根据给定的命令过滤历史记录。但是当我尝试这个时,它就像bash一样循环历史。这是默认禁用吗?

7 个答案:

答案 0 :(得分:66)

点击Ctrl+R,键入一些字母,它会找到上一个带有这些字母的命令,按住Ctrl + R继续完成之前的调查结果。
在bash,zsh(以及我想的其他shell)中工作。

我个人喜欢的是:键入一些字母,按Up,显示以相同字母开头的先前命令。非常强大,我喜欢它。
您必须将所需的键绑定到history-beginning-search-backwardhistory-beginning-search-forward

如果对您来说还不够,zsh有很多选择,请尝试查看Zsh Line Editor并告诉我们。
对于bash,功能较弱但更常见的是Bash commands for history

答案 1 :(得分:9)

使用感叹号:

> !<starts-with this string>

您可以向上/向下浏览以此开头的所有命令。我一直使用“!v”来获取我之前使用Vim打开文件的命令。

除了匹配字符串的开头

之外,您还可以使用问号进行搜索
> !?status

可以找到“git status”。

答案 2 :(得分:5)

这是fish中提供的功能,但似乎有人为此zsh plugin了。它在标准ZSH中不可用。

答案 3 :(得分:5)

使用percol使用 Ctrl - r 动态搜索和浏览历史记录。

  • 安装percol:sudo pip install percol
  • zsh-history-search代码段添加到.zshrc文件中。

Ctrl - r 之后,您可以在同一窗口中查看整个历史记录。搜索关键字(动态)会缩小列表。您可以使用键绑定(例如此emacs like配置)在列表中上下导航并最终进行选择。

以下是选择了sudo install的历史记录中可用的所有sudo make install命令的搜索。

percol_history_search_example

输入发出所选命令。

答案 4 :(得分:2)

在zsh中激活vim键绑定后,您可以在vi命令模式下使用vi-history-search-backward(/)。

答案 5 :(得分:1)

我们也可以使用 fzf 交互式模糊搜索命令历史。

安装方法如下:

git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install

对它的所有配置说是。之后,重新启动您的 zsh shell,然后按 Ctrl-R,哇,弹出交互式命令历史搜索。享受!

答案 6 :(得分:0)

如果您不想添加任何键绑定,则可以默认使用 Ctrl + R 向后移动& Ctrl + S 向前移动。

  

您可以使用以下任意快捷键开始搜索: Ctrl + R Ctrl + S