有人告诉我,在 ZSH 中你可以执行类似
command
的操作,然后当你点击时,它会根据给定的命令过滤历史记录。但是当我尝试这样做时,它只是像 bash 一样循环历史记录。默认情况下禁用此功能吗?
点击 Ctrl+r,输入一些字母,它将查找带有这些字母的上一个命令,继续按 Ctrl+R 继续查找之前的发现。
适用于 bash、zsh(我想还有其他 shell)。
我个人喜欢的是:输入一些字母,按Up,就会出现之前以相同字母开头的命令。非常强大,我喜欢。
您必须将您想要的键绑定到
history-beginning-search-backward
和 history-beginning-search-forward
。
如果这对您来说还不够,zsh 有很多选项,请尝试查看 Zsh Line Editor 并告诉我们。
对于 bash,功能较弱但更常见,历史记录的 Bash 命令。
使用感叹号:
> !<starts-with this string>
您可以向上/向下箭头浏览以此开头的所有命令。我一直使用“!v”来获取之前使用 Vim 打开文件的命令。
除了匹配字符串的开头之外,您还可以使用问号进行搜索,
> !?status
可以找到“git status”。
我们还可以使用fzf来交互式地模糊搜索命令历史记录。
安装方法如下:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
对其所有配置说“是”。之后,重新启动你的zsh shell,然后按
Ctrl-R
,哇,交互式命令历史搜索弹出。享受吧!
使用 percol 通过 Ctrl-r 动态搜索和浏览历史记录。
sudo pip install percol
按 Ctrl-r 后,您可以在同一窗口中查看整个历史记录。 (动态)搜索关键字可以缩小列表范围。您可以使用键绑定(像这样的emacs配置)在列表中上下导航并最终做出选择。
此处搜索历史记录中所有可用的
sudo install
命令,并且选择了 sudo make install
。
Enter 发出所选命令。
在 zsh 中激活 vim 键绑定后,您可以在 vi 命令模式下使用 vi-history-search-backward (/)。
如果您不想添加任何按键绑定,则可以默认使用 Ctrl+R 向后移动和 Ctrl+S 向前移动进行搜索。
您可以使用任何快捷键 Ctrl+R 或 Ctrl+S
开始搜索