我被告知在ZSH中你可以做类似command
的事情然后当你点击它时会根据给定的命令过滤历史记录。但是当我尝试这个时,它就像bash一样循环历史。这是默认禁用吗?
答案 0 :(得分:66)
点击Ctrl+R
,键入一些字母,它会找到上一个带有这些字母的命令,按住Ctrl + R继续完成之前的调查结果。
在bash,zsh(以及我想的其他shell)中工作。
我个人喜欢的是:键入一些字母,按Up
,显示以相同字母开头的先前命令。非常强大,我喜欢它。
您必须将所需的键绑定到history-beginning-search-backward
和history-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 动态搜索和浏览历史记录。
sudo pip install percol
在 Ctrl - r 之后,您可以在同一窗口中查看整个历史记录。搜索关键字(动态)会缩小列表。您可以使用键绑定(例如此emacs like配置)在列表中上下导航并最终进行选择。
以下是选择了sudo install
的历史记录中可用的所有sudo make install
命令的搜索。
输入发出所选命令。
答案 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 >