【问题标题】:how to search all history command by using bck-i-search in zsh如何在 zsh 中使用 bck-i-search 搜索所有历史命令
【发布时间】:2018-12-08 03:22:25
【问题描述】:
我使用zsh,当我运行Ctrl-R搜索历史命令时,我只能得到在这个会话中执行的命令,但不能搜索所有的历史命令。
我知道 bash 中有一个 .bash_history 文件来存储所有历史命令,我们可以在 bash 中进行此搜索。
在 zsh 中有什么方法可以做到这一点吗?
【问题讨论】:
标签:
zsh
oh-my-zsh
zsh-completion
【解决方案1】:
只需搜索历史文件:
% egrep <regexp> ~/.zsh_history
或
% less ~/.zsh_history
并使用 / 命令搜索
【解决方案2】:
Zsh 默认情况下不会将历史记录保存到文件中,这就是为什么在更改会话时会删除您的历史记录。
您必须在您的~/.zshrc 文件中输入以下内容:
HISTFILE=~/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
setopt appendhistory
【解决方案3】:
除了Ctrl-R,您还可以编写命令的第一个字符,然后按↑ 键向上滚动从写入的第一个字符开始到第一次使用的命令行历史记录
【解决方案4】:
要在所有会话中搜索历史记录,您需要启用多个选项。 zshoptions 手册页有一个历史记录部分,列出了相关选项。
SHARE_HISTORY 是一种在会话之间共享历史记录的选项。启用此功能后,您应该能够搜索(使用 Ctrl-R 或 history)在此会话和其他会话中运行的命令。